我正在尝试使用vba将另一个excel工作簿上的单元格中的数字值更新为1.
所以如果我在工作簿2中有值466那么当我运行我的代码表单工作簿1时,这将更新466到467,并且每次运行代码时它会增加1.
工作簿通常会被关闭,但我希望它能够工作,无论工作簿是开放还是关闭,如果这都很重要。
我正在尝试使用以下代码,但它没有更新任何内容,我没有收到任何错误。
请有人告诉我我做错了什么。感谢
Dim ws1112 As Worksheet, ws2221 As Worksheet
Set ws1112 = Sheets("Statistics")
Set ws2221 = Workbooks("\\UKSH000-File06\Purchasing\New_Supplier_Set_Ups_&_Audits\Workbook 2.xls").Sheets("Dashboard")
ws2221.Range("C7").Value = ws2221.Range("C7").Value + 1
答案 0 :(得分:0)
现在我要走出困境说你的错误是"错误' 9',下标超出范围"但是这个错误以某种方式被其他代码抑制或静默处理(例如On Error GoTo
语句)。
这是因为您无法通过在Workbooks("<name>")
语句中包含完整的文件路径来打开工作簿。您需要使用Workbooks.Open("<FilePath>")
。
例如:
Dim wb As Workbook
Dim ws1112 As Worksheet
Dim ws2221 As Worksheet
Set ws1112 = Sheets("Statistics")
Set wb = Workbooks.Open("\\UKSH000-File06\Purchasing\New_Supplier_Set_Ups_&_Audits\Workbook 2.xls")
Set ws2221 = wb.Sheets("Dashboard")
ws2221.Range("C7").Value = ws2221.Range("C7").Value + 1
'Optional if you want to close the workbook afterwards
wb.Close SaveChanges:=True