拥有多年的编程经验(不过是VBA初学者)、在线参考资料和搜索引擎,但我仍然对无法使其工作感到非常沮丧。
我花了至少两个小时尝试了CInt, .Range, With/End With, .Value, Cells等我能想到的每一个组合,它只是在&;sum = sum +…&;线:
Public Sub Fill_InnerData()
Dim GNumber As Range
Set GNumber = Range("GenerateNumber")
Dim Data As Range
Set Data = Range("DATA_INNER")
For r = 1 To Data.Rows.Count
For c = 1 To Data.Columns.Count
If Data.Cells(r, c) = "" Then
If c > r Then
Data.Cells(r, c) = 0
Else
Dim x As Integer
x = r - c + 1
Dim y As Integer
y = 2
Dim sum As Integer
sum = 1
For i = 1 To c
sum = sum + CInt(Worksheets("Data").Range(Cells(x, y)).Value)
y = y + 1
Next
End If
End If
Next
Next
End Sub
,"failing"我的意思是得到这个错误:
运行时错误'1004':
应用程序定义或对象定义错误
我在上面提到的每一个组合中都收到了这个错误。
我做错了什么?
这里的想法是您的语法引用范围。它应该足够剪掉一点,这样做:
Sum = Sum + CInt(Worksheets("Data").Cells(x, y).Value)
根据我的经验,如果只提供一个参数,范围需要括号内的地址字符串。如果同时提供起始和结束范围点,也可以放置cell。这两行简单的代码语法正确:
Range(Cells(1,1), Cells(2,2)).Select
Range(Cells(1,1).Address).Select
这是无效的:
Range(Cells(1,1)).Select 'error 1004 here