为什么我会收到错误1004试图指定单元格引用循环变量是什么时候?

问题描述 投票:0回答:1

我坚持,主要是因为我仍然在品牌VBA崭新的。因此,我真的很感谢你能不能借我的任何帮助。我已经通过在这里的许多其他错误1004分的帖子看,但他们无论是对不同的问题,也很可能是我太无知知道该怎么在他们的建议去做。

我的问题是这样的:我有两个工作簿,一个原始数据,并在其中原始数据整合到相关的统计数据。我试图在SUMIF X中的数据:通过在统计书两个标准X在我的原始工作簿(6620),然后更新的统计书的相应单元格的值。

我遇到一个运行时错误1004:应用程序定义或对象定义在指定点错误。我失去了对如何搬过去这一点。

任何帮助是极大的赞赏!

这是据我已经得到了:

Option Explicit

Sub ImportFTEs()

Application.ScreenUpdating = False
Application.EnableEvents = False

    Dim ws As Integer

    Workbooks.Open Filename:=ActiveWorkbook.Path & "\6620\FY19*.xlsb"
        For ws = 1 To Worksheets.Count
            Sheets(ws).Name = "Sheet1"
        Next ws

        Dim i As Integer
        Dim j As Integer
        Dim k As Integer
        Dim l As Integer
        Dim totalFTE As Long
        Dim lastRow As Integer
            lastRow = Cells(Rows.Count, "D").End(xlUp).Row
        Dim wb As Worksheet
            Set wb = Workbooks.Open(ActiveWorkbook.Path & "\FY19*.xlsb").Sheets("Sheet1")
        Dim wc As Worksheet
            Set wc = ThisWorkbook.Sheets("B")
        Dim sum1R As Range
            Set sum1R = wb.Range("X:X")
        Dim arg2R As Range
            Set arg2R = wb.Range("D:D")
        Dim arg2C As Range
            Set arg2C = wc.Cells(7, i)
                                 >>> Error 1004
        Dim arg3R As Range
            Set arg3R = wb.Range("S:S")
        Dim arg3C As Range
            Set arg3C = wc.Cells(j, 6)
                                 >>> Error 1004
            For k = 8 To 18
                For l = 7 To 18
                    For i = 7 To 18
                        For j = 8 To 18
                            wc.Cells(k, l).value = Application.WorksheetFunction.SumIfs(sum1R, arg2R, arg2C, arg3R, arg3C)
                        Next j
                    Next i
                Next l
            Next k
    ActiveWorkbook.Close savechanges:=True

Application.ScreenUpdating = True
Application.EnableEvents = True

End Sub
excel vba
1个回答
2
投票

如果是这样的 - 你需要包含各自的环内Setij线 - 这样的数值实际上会增加(而不是0时,他们正在初始化):

Option Explicit
Sub ImportFTEs()

    Application.ScreenUpdating = False
    Application.EnableEvents = False

    Workbooks.Open Filename:=ActiveWorkbook.Path & "\6620\FY19*.xlsb"

    Dim i As Long, j As Long, k As Long, l As Long
    Dim totalFTE As Long

    Dim wb As Worksheet
    Set wb = Workbooks.Open(ActiveWorkbook.Path & "\FY19*.xlsb").Sheets("Sheet1")

    Dim wc As Worksheet
    Set wc = ThisWorkbook.Sheets("B")

    Dim sum1R As Range
    Set sum1R = wb.Range("X:X")

    Dim arg2R As Range
    Set arg2R = wb.Range("D:D")

    Dim arg3R As Range
    Set arg3R = wb.Range("S:S")

    Dim arg2C As Range
    Dim arg3C As Range

    For k = 8 To 18
        For l = 7 To 18
            For i = 7 To 18

                Set arg2C = wc.Cells(7, i)

                For j = 8 To 18

                    Set arg3C = wc.Cells(j, 6)

                    wc.Cells(k, l).Value = Application.WorksheetFunction.SumIfs(sum1R, arg2R, arg2C, arg3R, arg3C)

                Next j
            Next i
        Next l
    Next k

    ActiveWorkbook.Close True

    Application.ScreenUpdating = True
    Application.EnableEvents = True

End Sub
© www.soinside.com 2019 - 2024. All rights reserved.