3条回答 默认 最新
- Check_Const 2022-11-27 21:16关注
好像需求描述还有些二义,例如是整列覆盖?还是在目标表对应列最后一行追加?
是两个独立表格文件两个“工作簿”?
还是可以理解为同一个文件(工作簿)中的两个不同“工作表”?
有没有需指定“工作表”中Sheet?假设两个独立EXCEL表格文件(工作簿)的工作表均为Sheet1
可以参考如下代码(在MS Office Excel测试通过)按实际需求进一步调整Sub copy_AToB() Dim Wbook1 As Workbook, Wbook2 As Workbook Dim path_A, path_B Dim ABookName, BBookName '假设两个独立表格文件 Dim aCol As Integer, bCol As Integer Application.ScreenUpdating = False '暂停刷新 path_A = "D:\" ABookName = "checkA.xlsx" 'A表格文件名称 path_B = "E:\" BBookName = "checkB.xlsx" 'B表格文件名称 aCol = 3 'A表格的源列号 按需求灵活调整 bCol = 6 'B表格的目标列号 If ABookName = BBookName Then MsgBox "两个文件名称不能相同", vbInformation, "提示" Exit Sub ‘若不符合逻辑则退出 End If ABookName = path_A & ABookName '加路径组合 BBookName = path_B & BBookName If Dir(ABookName, 16) = vbNullString Then '检查文件是否存在 MsgBox "未找到 " & ABookName, vbInformation, "提示" Exit Sub End If If Dir(BBookName, 16) = vbNullString Then MsgBox "未找到 " & BBookName, vbInformation, "提示" Exit Sub End If '文件存在的条件为 Not Dir(ABookName, 16) = vbNullString Set Wbook1 = Workbooks.Open(ABookName) '打开A文件 Set Wbook2 = Workbooks.Open(BBookName) '打开B文件 Wbook1.Sheets(1).Activate ActiveSheet.Columns(aCol).Copy '复制列 Wbook2.Sheets(1).Activate ActiveSheet.Columns(bCol).PasteSpecial '拷贝至目标列 '清空剪贴板,避免关闭文件命令时弹出提示类似“在剪贴板上有大量信息。是否保留其内容,以便此后粘贴到其他程序中?” Application.CutCopyMode = False '清空 Wbook1.Close '关闭A文件 Wbook2.Save '保存B文件 'Wbook2.SaveAs Filename:="E:\checkB_New.xlsx" '此句测试另存为新文件 Wbook2.Close '关闭B文件 MsgBox "从" & ABookName & "拷贝至" & BBookName & "完成", vbInformation, "提示" Application.ScreenUpdating = True End Sub
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥50 pc微信3.6.0.18不能登陆 有偿解决问题
- ¥15 求TYPCE母转母转接头24PIN线路板图
- ¥100 国外网络搭建,有偿交流
- ¥15 高价求中通快递查询接口
- ¥15 解决一个加好友限制问题 或者有好的方案
- ¥15 急matlab编程仿真二阶震荡系统
- ¥20 TEC-9的数据通路实验
- ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
- ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
- ¥15 python如何将动态的多个子列表,拼接后进行集合的交集