我一直遇到 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/