EXCEL中 如何用宏实现 从每个其他的EXCEL提取特定一列放到一个新的EXCEL里? 30

 我来答
帐号已注销
2011-03-14 · TA获得超过8613个赞
知道大有可为答主
回答量:3242
采纳率:66%
帮助的人:2859万
展开全部
详细Hi我

根据说明更改前面三行的参数:
--------------
Sub 合并选定工作簿的第1个工作表中的某几列()
Dim c0%: c0 = 1 '数据源表内,需要复制的列位置,1~256
Dim cNum%: cNum = 1 '单个数据源表内,需要复制的列数量,1~256
Dim c1%: c1 = 1 '结果表内,开始放置结果的列位置,1~256

Dim iBk0 As Workbook, iBk1 As Workbook, i%, iFiles
iFiles = Application.GetOpenFilename("Excel Files (*.xls), *.xls", , "请选择要合并的工作簿", , True)
If IsArray(iFiles) = 0 Then MsgBox "没有选择文件!": Exit Sub
Application.ScreenUpdating = False
Set iBk1 = ActiveWorkbook
For i = 1 To UBound(iFiles)
c1 = c1 + (i - 1) * cNum
If c1 + cNum - 1 > 256 Then MsgBox "列已放满256列!程序终止!": GoTo 100
Set iBk0 = GetObject(iFiles(i))
iBk0.Worksheets(1).Columns(c0).Resize(, cNum).Copy _
iBk1.Worksheets(1).Columns(c1).Resize(, cNum)
iBk0.Close False
Next i
100:
Set iBk0 = Nothing
Application.ScreenUpdating = True
MsgBox "完成!"
End Sub
匿名用户
2015-06-26
展开全部
详细Hi我

根据说明更改前面三行的参数:
--------------
Sub 合并选定工作簿的第1个工作表中的某几列()
Dim c0%: c0 = 1 '数据源表内,需要复制的列位置,1~256
Dim cNum%: cNum = 1 '单个数据源表内,需要复制的列数量,1~256
Dim c1%: c1 = 1 '结果表内,开始放置结果的列位置,1~256

Dim iBk0 As Workbook, iBk1 As Workbook, i%, iFiles
iFiles = Application.GetOpenFilename("Excel Files (*.xls), *.xls", , "请选择要合并的工作簿", , True)
If IsArray(iFiles) = 0 Then MsgBox "没有选择文件,": Exit Sub
Application.ScreenUpdating = False
Set iBk1 = ActiveWorkbook
For i = 1 To UBound(iFiles)
c1 = c1 + (i - 1) * cNum
If c1 + cNum - 1 > 256 Then MsgBox "列已放满256列,程序终止,": GoTo 100
Set iBk0 = GetObject(iFiles(i))
iBk0.Worksheets(1).Columns(c0).Resize(, cNum).Copy _
iBk1.Worksheets(1).Columns(c1).Resize(, cNum)
iBk0.Close False
Next i
100:
Set iBk0 = Nothing
Application.ScreenUpdating = True。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式