我一直遇到 Run-time error '1004' Method 'Range' of object '_Global' failed

在一个名为“Receiving”的工作表中,我有一个表(该表是工作表中唯一的东西),该表具有动态名称(该表的名称会不时更改),因此我将名称更改为“invoiceTable”子程序的开始。基本上,我想遍历invoiceTable的行并根据表中的数据修改其他工作表中的数据。

invoiceTable中的第一列称为“框架”,第五列称为“接收的数量”。我正在尝试遍历invoiceTable,并根据invoiceTable中列出的框架更新名为“库存管理”的工作表中的数据。对于发票表中的每个框架,我要采用“已接收数量”并将其添加到特定框架索引处的“库存管理”的T列中。

同样,我想从invoiceTable中的“单价”标题下获取值,并使用invoiceTable中每个框架的最新购买价格来更新“库存管理”列F中的值。

ActiveSheet.ListObjects(1).Name = "invoiceTable"

For row = 1 To Range("invoiceTable").Rows.Count
    If Range("invoiceTable[Frame]")(row).Value <> 0 Then
        Dim frame As String
        Dim purchQ As Integer
        Dim price As Long

        frame = Range("invoiceTable[Frame]")(row).Value
        price = Range("invoiceTable[Unit Price]")(row).Value
        purchQ = Range("invoiceTable[Quantity Received]")(row).Value

        Sheets("Inventory Management").Select
        Range("=OFFSET('Inventory Management'!F5,MATCH(frame,'Inventory Management'!B6:B41,0),0)").Value = price
        Range("=OFFSET('Inventory Management'!T5,MATCH(frame,'Inventory Management'!B6:B41,0),0)").Value = Range("=OFFSET('Inventory Management'!T5,MATCH(frame,'Inventory Management'!B6:B41,0),0)").Value + purchQ
        Sheets("Receiving").Select
    End If
Next

最佳答案

尝试使用此代码代替处理“库存管理”工作表的4行:

With Worksheets("Inventory Management")
    Dim FindFrame As Range
    Set FindFrame = .Range("B6:B41").Find(frame)
    If Not FindFrame Is Nothing Then
        .Cells(FindFrame.Row, 6) = Price
        .Cells(FindFrame.Row, 20) = .Cells(FindFrame.Row, 20) + purchq
    End If
End With

关于vba - 运行时错误 '1004'对象 'Range'的方法 '_Global'失败-动态表名称,循环,工作表间搜索,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37350885/

10-12 14:28