将单元格值添加到整数(Excel-VBA)

时间:2013-04-19 03:17:34

标签: excel-vba vba excel

凭借多年的编程经验(无论是VBA的初学者),在线参考资料和搜索引擎,我还是因为无法实现这一目标而感到沮丧。

我花了至少两个小时尝试了我能想到的CInt,.Range,With / End With,.Value,Cells等的每一个组合,它只是在&#34上失败了; 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

失败"我的意思是得到这个错误:

  

运行时错误' 1004':

     

应用程序定义或对象定义的错误

我在上述行中收到了我尝试的每个组合的错误。

我做错了什么?

1 个答案:

答案 0 :(得分:2)

这里的思考是你的语法指的是范围。它应该足够削减它并以这种方式做到:

Sum = Sum + CInt(Worksheets("Data").Cells(x, y).Value)

根据我的经验,如果只提供一个参数,则范围内需要括号内的地址字符串。或者,如果同时提供起始和结束范围点,则可以放置单元格。这两个简单的行具有正确的语法:

Range(Cells(1,1), Cells(2,2)).Select
Range(Cells(1,1).Address).Select

这是无效的:

Range(Cells(1,1)).Select    'error 1004 here