excel - 如何在 Excel VBA 中复制特定范围值?
问题描述
如何在 Excel VBA 中复制特定范围值?我试图通过首先创建一个输入框让用户在另一个工作簿中输入范围,然后将该范围的值从所有选定的工作簿复制到一个工作簿中来复制一个范围。
这就是我所拥有的,但它只复制一组值。
FileNames = Application.GetOpenFilename(FileFilter:="Excel Filter (*.csv), *.csv", Title:="Open File(s)", MultiSelect:=True)
nw = UBound(FileNames)
Workbooks.Open FileNames(1)
Set UserRange = Application.InputBox(Title:="Select Range", Prompt:="Range", Default:=DefaultRange, Type:=8)
For i = 1 To nw
Set FileNames(i) = ActiveWorkbook
UserRange.Copy
tWB.Worksheets("Data").range("A" & i).PasteSpecial Transpose:=True
Next i
编辑:我只需要打开一个工作簿,将 UserRange 定义为范围,并将该范围内的值复制到所有选定的工作簿中,然后将它们粘贴到 tWB 工作簿中。
解决方案
正如 BigBen 在评论中所发布的,我已更改代码以单独打开每个工作簿并每次复制值。这给出了我正在寻找的准确结果。
新代码如下所示:
FileNames = Application.GetOpenFilename(FileFilter:="Excel Filter (*.csv), *.csv", Title:="Open File(s)", MultiSelect:=True)
nw = UBound(FileNames)
For i = 1 To nw
Workbooks.Open FileNames(i)
Set UserRange = Application.InputBox(Title:="Select Range", Prompt:="Range", Type:=8)
UserRange.Copy
tWB.Worksheets("Data").range("A" & i).PasteSpecial Transpose:=True
ActiveWorkbook.Close SaveChanges:=False
Next i
推荐阅读
- android - React Native - Android 视图在启动时重叠
- angular - :host::ng-deep .class 和 .class :host::ng-deep 之间的区别?
- javascript - 使用节点和multer将图像上传到heroku不起作用
- sql - PostgreSQL Select Columns Then Add Random Value
- adobe - AEM 自适应表格组件问题
- java - Is there a more efficient way to make HashMap with a counter from an ArrayList?
- selenium - 我们如何在 Selenium webdriver 中使用相同窗口 ID 从一个窗口切换到另一个窗口?
- sqlite - 如何将 guid 插入 sqlite UNIQUEIDENTIFIER 列
- javascript - 在浏览器应用中使用 protobuf.js
- python - 使用 get_dummies() 包含更多列