excel - 在工作簿之间移动工作表的问题
问题描述
我正在研究一个宏,该宏会将工作表从选定的 Excel 工作表移动到已加载宏的文档中。
我在实际让工作表移动时遇到问题,我不断收到下标超出范围的错误,我不确定为什么
到目前为止,我已经仔细阅读了 stackoverflow 和其他一些资源。我尝试过使用.sheets
/ workbook(workbookname).worksheets(1).copy
...等等。
Sub runEXCEL()
dim wb1 as workbook, wb2 as workbook
dim fd as filedialog
dim shtpath as string
dim ws as worksheet
Set fd = Application.FileDialog(msoFileDialogFilePicker)
If fd.Show = True Then
If fd.SelectedItems(1) <> vbNullString Then
shtpath = fd.SelectedItems(1)
End If
Else
End
End If
set wb1 = workbooks.open("c:\users\username\documents\yestbook.xlsm", true, false
set wb2 = workbooks.open(shtpath)
set ws = wb2.worksheets(1)
ws.name = "testname"
ws.worksheets(1).copy after:=wb1.sheets(1)
'xl.Application.Run "yestbook.xlsm!findCellAddress"
End Sub
理想情况下,我想将选定工作簿中的工作表复制到我的预定义工作簿中。
解决方案
没有必要创建额外的 Excel 进程(实际上,这可能是问题的原因)。您还应该对所有工作表访问使用工作簿和工作表变量,并避免像Sheets("testname")
.
尝试以下方式:
Dim wb as workbook, ws as worksheet, wb2 as workbook, ws2 as worksheet
Set wb = Workbooks.Open(mysheetpath1)
Set ws=wb.Worksheets(1)
set wb2=Workbooks.Open(mysheetpath2)
set ws2=wb2.Worksheets(1)
ws2.Copy after:=ws
推荐阅读
- tomcat - Servlet - 如何避免读取请求正文
- python - 在Django中渲染页面后在后台执行代码
- android - 是否可以通过 Activity 从片段中调用 ViewModel 方法,还是一种不好的做法?
- c++ - 合并两个数组后得到不正确的数组大小
- php - 在 Laravel 中,我的表列被连接覆盖,我该如何解决?
- arrays - 是否可以重新排列具有恒定内存开销的数组?
- mongodb - JEST:Expect() 仅数组中的唯一元素
- java - 如何计算android studio中的admob广告点击并存储在sharedprefernce中?
- javascript - 将两个回调合并为一个返回
- mongodb - mongodb:未指定身份验证机制