vba - 从已关闭的工作簿列中复制内容
问题描述
正如标题中所说,我正在尝试将列中的数据复制到新工作簿中,作为其每周报告,其中我在此列中添加的数据仍然有效。
Sub copyColData00()
Dim lastRow As Long
Dim myApp As Excel.Application
Dim wkBk As Workbook
Dim wkSht As Object
Dim mnt As String
Set myApp = CreateObject("Excel.Application")
mnt = InputBox("Enter Filename")
Set wkBk = Workbooks.Open("\\n\Documents\" & mnt & ".xlsx")
lastRow = wkBk.Sheets(1).Range("R" & Rows.Count).End(xlUp).Row
wkBk.Sheets(1).Range("R1:R" & lastRow).Copy
myApp.DisplayAlerts = False
wkBk.Close
myApp.Quit
Set wkBk = Nothing
Set myApp = Nothing
Set wkBk = ActiveWorkbook
Set wkSht = wkBk.Sheets("Sheet1")
wkSht.Activate
Range("R1").Select
wkSht.Paste
Exit Sub
End Sub
我的问题是我希望它直接过去它,而我得到一个提示,询问我是否要复制剪贴板中的所有数据,我的第二个问题是在 Set wkSht = wkBk.Sheets("Sheet1" )它给了我错误下标超出范围我很难理解如果有人可以帮助它会发生什么会很好!
解决方案
这是一个更简单的方法:
Sub copyColData00()
Dim lastRow As Long
Dim wkBk1 As Workbook, wkBk2 As Workbook
Dim wkSht As Object
Dim mnt As String
mnt = InputBox("Enter Filename")
Set wkBk1 = ActiveWorkbook
Set wkBk2 = Workbooks.Open("\\n\Documents\" & mnt & ".xlsx")
lastRow = wkBk2.Sheets(1).Range("R" & Rows.Count).End(xlUp).Row
wkBk1.Sheets(1).Range("R1:R" & lastRow).Value = wkBk2.Sheets(1).Range("R1:R" & lastRow).Value 'change which sheet you want for wkBk1
wkBk2.Close
End Sub
推荐阅读
- c++ - 使用 string::insert(iterator it, char c) 的程序中的运行时错误
- storybook - 附加文档的故事书/HTML
- html - 正则表达式查找 XML 输入是否包含 HTML 元素列表
- c++ - 构建venes_inet时出错:意外令牌
- sql - 使用 postgresql 删除无索引表中的重复记录
- python - 使用 python 加密的 InvalidSignature
- python - Python多线程队列窥视
- java - Java - 使用多正则表达式从字符串中提取 JSON 值
- ios - 为什么委托值没有迅速进入文本字段?
- ios - “xcodebuild test”不断破坏我的 info.plist 文件