我想在宏中引用另一个工作簿,因此宏中的函数也将在另一个工作簿上运行
其中一张工作簿中的一个工作簿上有一个按钮,需要剪切并将整行插入列表的顶部(第2行)。它也需要在另一张纸上进行工作簿。
我的主要问题是参考文件。我得到的主要错误是“运行时错误'9':下标超出范围”或“对象或方法无效”
我拥有的当前代码在发表评论之前一直有效。
Private Sub CommandButton2_Click()
Dim wbA As Workbook
Set wbA = Workbooks("MFDT Dashboard 3.0 PRE-alpha.xlsm")
'Loop through workbook
For Each ws In ThisWorkbook.Sheets
'Color cells
If ws.Rows(ActiveCell.Row).Interior.Color = RGB(255, 0, 0) Then
ws.Rows(ActiveCell.Row).Interior.Color = RGB(255, 255, 255)
Else
ws.Rows(ActiveCell.Row).Interior.Color = RGB(255, 0, 0)
End If
'Cut and insert
If Not ActiveCell.Row = 2 Then
ws.Rows(ActiveCell.Row).Cut
ws.Rows(2).Insert Shift:=xlDown
End If
Next ws
'after this it stops working.
wbA.Sheets("Enginlist").Rows(ActiveCell.Row).Cut
wbA.Sheets("Enginlist").Rows(2).Insert Shift:=xlDown
End Sub
答案 0 :(得分:1)
您需要打开文件进行更改。
替换
Set wbA = Workbooks("MFDT Dashboard 3.0 PRE-alpha.xlsm")
与
Set wbA = Workbooks.Open("PATH\MFDT Dashboard 3.0 PRE-alpha.xlsm") ' add path to file also
然后在宏末尾,您需要关闭文件
wbA.close
但是我总是做两次以确保没有关闭文件。
on error resume next
wbA.close
wbA.close
on error goto 0