vba复制excel工作簿中全部表的某一列到另一个工作簿中

已举报 回答
vba复制excel工作簿中全部表的某一列到另一个工作簿中
问在线客服
扫码问在线客服
  • 回答数

    6

  • 浏览数

    65

6个回答 默认排序
  • 默认排序
  • 按时间排序

已采纳
根据您的需求,以下是改写后的内容:
```vb
Sub CopyColumns()
Dim c As Worksheet
Windows("整理汇总").Activate
For Each c In ThisWorkbook.Sheets
ls2 = c.Range("a65535").End(3).Row
ls = c.Range("c65535").End(3).Row
c.Range("c1:c").Copy Workbooks("整理汇总").ActiveSheet.Range("a", ls2)
Next
End Sub
```
在这个代码中,我们首先使用`ThisWorkbook.Sheets`来循环遍历原始数据中的每一张工作表。然后,我们通过`ls2`变量来获取目标工作表中的最后一行,并通过`ls`变量来获取源工作表中的最后一行。
接下来,我们使用`c.Range("c1:c").Copy`来复制源工作表中的所有列到目标工作表中,并将它们粘贴到目标工作表的从第一个单元格到最后一个单元格。
请注意,以上代码中并没有改变被选择的工作表,因此每次复制的都是被选择的那个工作表,并且会重复N次。
希望这个改写后的内容符合您的预期。如果还有其他问题需要解决,请随时告诉我。
取消 评论
现在用的是什么版本,已经存在的什么版本?
取消 评论
打开你的Excel文件,按“Alt+F11”打开VBA编辑窗口,然后在左侧需要存放名称的那个Sheet上双击,右侧空白处粘贴下面的代码。关闭VBA窗口。然后按“Alt+F8”打开宏窗口,选择刚插入的宏,点击“执行”。这样,在该Sheet的A列就会罗列出所有工作表名称。

123456
Sub fz()Dim i As IntegerFor i = 1 To Sheets.Count Range(A & i).Value = Sheets(i).NameNextEnd Sub
取消 评论
不会的,只要保存关闭,数据表里没有数据关联,是不会打开的
取消 评论
试试在同一个工作簿中打开另一个工作表,而不是最小化后再打开另 一个。应该没问题了。
取消 评论
Sub t1()Dim fdOpen As FileDialogDim fdPath$, fo, fd, f, xls, sh, dsh, r% Set fdOpen = Application.FileDialog(msoFileDialogFolderPicker) With fdOpen If .Show Then fdPath = .SelectedItems(1) End With Set fo = CreateObject(Scripting.FileSystemObject) Set fd = fo.GetFolder(fdPath) Set dsh = ThisWorkbook.Sheets.Add dsh.Name = 合并 & ThisWorkbook.Sheets.Count r = 1 dsh.Activate Application.ScreenUpdating = False For Each f In fd.Files If f.Name ThisWorkbook.Name And Not f.Name Like ~$* And (f.Name Like *.xls Or f.Name Like *.xlsx) Then Set xls = Workbooks.Open(f.Name) For Each sh In xls.Sheets sh.UsedRange.Copy dsh.Cells(r, 1) r = r + sh.UsedRange.Rows.Count Next xls.Close End If Next Application.ScreenUpdating = TrueEnd Sub ===========================
Sub t2()Dim fdOpen As FileDialogDim fdPath$, f, xls, sh, dsh, r% Set fdOpen = Application.FileDialog(msoFileDialogFolderPicker) With fdOpen If .Show Then fdPath = .SelectedItems(1) End With Set dsh = ThisWorkbook.Sheets.Add dsh.Name = 合并 & ThisWorkbook.Sheets.Count r = 1 dsh.Activate Application.ScreenUpdating = False f = Dir(fdPath & \*.xls*) Do While f If f ThisWorkbook.Name And Not f Like ~$* Then Set xls = Workbooks.Open(f) For Each sh In xls.Sheets sh.UsedRange.Copy dsh.Cells(r, 1) r = r + sh.UsedRange.Rows.Count Next xls.Close End If f = Dir() Loop Application.ScreenUpdating = TrueEnd Sub
取消 评论
ZOL问答 > vba复制excel工作簿中全部表的某一列到另一个工作簿中

举报

感谢您为社区的和谐贡献力量请选择举报类型

举报成功

经过核实后将会做出处理
感谢您为社区和谐做出贡献

扫码参与新品0元试用
晒单、顶楼豪礼等你拿

扫一扫,关注我们
提示

确定要取消此次报名,退出该活动?