当前位置:编程学习 > VB >>

求助:一个简单的循环条件求和VBA程序

我的代码很拙劣,将就看吧。。
需求:见附件,我做的是“深天地A”这行(第三行)的分值,在第一行中所有含“str”的指标下对应的分值加在一起,比如“CGOV_str_G”中含有“str”,下面对应的分值是1,那么就记为1分,依次类推
我这个输出有问题,调试过,在某个地方就变成错误的了,不知道为什么!!

Sub okExcel()


Dim sum As Integer
Dim i As Integer
Dim c As Range
Dim c1 As Range
Dim c2 As Range
Dim c3, c4, c5, c6, c7 As Range

Set c = Sheet1.Cells(1, "D")
Set c2 = Sheet1.Cells(3, "DC")

sum = 0

For i = 1 To 104

Set c3 = c.Find(what:="str")
If Not c3 Is Nothing Then
 Set c1 = c3.Offset(2, 0)
 sum = sum + c1.Value
End If

Set c = c.Offset(0, 1)
Next i

c2.Value = sum


End Sub


--------------------编程问答-------------------- 不能贴附件?示意如下:

1  GICS 股票简称 股票代码 CGOV_con_G CGOV_con_H CGOV_con_I CGOV_con_X CGOV_str_D
2  原材料 宝钢股份 600019         0                   0                  1                  0               1
3       深天地A 000023     0                   1              0                  0               1
--------------------编程问答-------------------- 你表达能力也有问题,是统计所有股票的该列分值和么?第三行只看到缺少GICS列内容 --------------------编程问答-------------------- 是统计某一只股票的con项(弱势)分值之和,以及str项(强项)分值之和 --------------------编程问答-------------------- 用Split函数
下面的示例利用 Split 函数从字符串中返回数组。函数对分界符进行文本比较,返回所有的子字符串。 
Dim MyString, MyArray
MyString = Split("VBScriptXisXfun!", "x", -1, 1)
' MyString(0) 包含"VBScript"。
' MyString(1) 包含"is"。
' MyString(2) 包含 "fun!"。

--------------------编程问答-------------------- Split函数
      

描述

返回一个下标从零开始的一维数组,它包含指定数目的子字符串。

语法

Split(expression[, delimiter[, count[, compare]]])

Split函数语法有如下几部分:

部分 描述 
expression 必需的。包含子字符串和分隔符的字符串表达式 。如果expression是一个长度为零的字符串(""),Split则返回一个空数组,即没有元素和数据的数组。 
delimiter 可选的。用于标识子字符串边界的字符串字符。如果忽略,则使用空格字符(" ")作为分隔符。如果delimiter是一个长度为零的字符串,则返回的数组仅包含一个元素,即完整的 expression字符串。 
count 可选的。要返回的子字符串数,–1表示返回所有的子字符串。 
compare 可选的。数字值,表示判别子字符串时使用的比较方式。关于其值,请参阅“设置值”部分。 


设置值

compare参数的设置值如下:

常数 值 描述 
vbUseCompareOption –1 用Option Compare语句中的设置值执行比较。 
vbBinaryCompare 0 执行二进制比较。 
vbTextCompare 1 执行文字比较。 
vbDatabaseCompare 2 仅用于Microsoft Access。基于您的数据库的信息执行比较。 

--------------------编程问答-------------------- Sheet1.Cells(3, "DC") '还能这样写的?

For i = 1 To 104 '这个循环因子i就没在循环里面出现过啊
补充:VB ,  VBA
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,