excel - 在另一个工作簿上运行宏
问题描述
我想在我的宏中引用另一个工作簿,所以宏中的函数也会在另一个工作簿上运行
在其中一张工作表上的一个工作簿中有一个按钮,需要在列表顶部(第 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
解决方案
您需要打开文件才能对其进行更改。
代替
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
推荐阅读
- php - 在一列中插入多个图像作为逗号分隔列表
- javascript - 在方法之间传递参数似乎并没有改变打字稿中的 agument
- amazon-web-services - 无服务器后端 (AWS) 的国际化
- mongodb - 根据其他集合数组中匹配的对象属性执行 $lookup
- ios - iOS 到 JAX-RS:大数据和超时
- r - 删除点,同时将线保持在散点图中
- android - 为什么通知不会出现在系统托盘中?
- java - 如何从嵌套数组中获取值或索引并比较条件
- sql - 旧版查询 Sybase 到 TSQL MSSQL 迁移,使用 or 运算符进行多个左连接
- matlab - MATLAB 重复测量方差分析 (rANOVA)