EXCEL的宏如何用VB编写循环

需要用EXCEL的宏完成一个小功能:依次打开100个EXCEL表,并把它们的内容按顺序复制到一个表中。100个EXCEL表名为ORANGE001到ORANGE100。谢谢... 需要用EXCEL的宏完成一个小功能:依次打开100个EXCEL表,并把它们的内容按顺序复制到一个表中。100个EXCEL表名为ORANGE001到ORANGE100。谢谢了!
就是将100个独立的EXCEL文件(每个独立的EXCEL文件中包含两列数据)按 列 的顺序导入到一个新的EXCEL文件的第一张工作表中去
展开
 我来答
xiaobo3152
2008-11-25 · TA获得超过2988个赞
知道小有建树答主
回答量:763
采纳率:0%
帮助的人:821万
展开全部
我可以帮你,但是程序可能需要根据你的需求做更改.

Sub 自动汇总()
'功能:合并某文件下所有Excel工作簿中的第一个工作表
'使用:将要合并的工作簿拷贝到某文件夹下,新建一个工作簿后执行该宏
Dim WBName As String '汇总工作簿名称
Dim WBCurrent As String '当前正在合并的工作簿
Dim i As Integer
Dim FileToOpen As Variant '选定的文件列表
'显示选择文件对话框,使用Ctrl或Shief键选取多个工作簿
FileToOpen = Application _
.GetOpenFilename("Excel Files (*.xls), *.xls", , "请选择要合并的工作簿", , True)
'如果没有选择文件则退出
If IsArray(FileToOpen) = 0 Then
MsgBox "没有选择文件"
Exit Sub
End If
'不显示合并的过程
Application.ScreenUpdating = False
WBName = ActiveWorkbook.Name
'逐个合并工作簿
For i = 1 To UBound(FileToOpen)
'打开一个工作簿
Workbooks.Open Filename:=FileToOpen(i)
WBCurrent = ActiveWorkbook.Name
'将该工作簿复制到汇总工作簿
Workbooks(WBName).Sheets(1).Cells(1, i) = WBCurrent

'合并后关闭该工作簿
ActiveWorkbook.Save
Workbooks(WBCurrent).Close
Next i
Application.ScreenUpdating = True
End Sub

然后全部向下拖拽填充
jxjjzdzy
2008-11-26
知道答主
回答量:2
采纳率:0%
帮助的人:0
展开全部
只知道你的大概意思,可能跟我原来做的宏要求有点相似,不行你就改改吧

Sub zhidao()
' zhidao Macro
Dim Words, mystring0, mystring1, mystring2, rwindex, ats1, ats2
ats1 = 200 ' 暂时变量
ats2 = 622 ' 暂时变量
For Words = 1 To ats1 Step 1 ' 建立多次循环。
If Words < 10 Then ' 建立循环次数
mystring0 = "d:\apple\apple00" & Words & ".csv" ' 将数字添加到字符串中。
mystring1 = "apple00" & Words & ".csv" ' 不加绝对途径的文件名
mystring2 = "apple00" & Words ' 工作薄中表的名称
Else if
mystring0 = "d:\apple\apple0" & Words & ".csv" ' 将数字添加到字符串中。
mystring1 = "apple0" & Words & ".csv" ' 不加绝对途径的文件名
mystring2 = "apple0" & Words ' 工作薄中表的名称
If 99 < Words < 1000 Then ' 建立循环次数
mystring0 = "d:\apple\apple" & Words & ".csv" ' 将数字添加到字符串中。
mystring1 = "apple" & Words & ".csv" ' 不加绝对途径的文件名
mystring2 = "apple" & Words ' 工作薄中表的名称

End If
Workbooks.OpenText Filename:=mystring0, DataType:=xlDelimited, Tab:=True
For rwindex = 1 To ats2
If mystring1 = "apple001.csv" Then
Workbooks("apple00A.xls").Worksheets("Sheet1").Cells(rwindex, 1).Value = Workbooks(mystring1).Worksheets(mystring2).Cells(rwindex, 1)
End If
Workbooks("apple00A.xls").Worksheets("Sheet1").Cells(rwindex, Words + 1).Value = Workbooks(mystring1).Worksheets(mystring2).Cells(rwindex, 2)
Next rwindex
Workbooks(mystring1).Close
Next Words
End Sub
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
13910001
2008-11-26
知道答主
回答量:38
采纳率:0%
帮助的人:0
展开全部
for i=1 to 10
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友efae51f
2008-11-24 · TA获得超过2221个赞
知道大有可为答主
回答量:6916
采纳率:0%
帮助的人:2998万
展开全部
38967098我来抢生意了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式