EXCEL的宏如何用VB编写循环

需要用EXCEL的宏完成一个小功能:依次打开100个EXCEL表,并把它们的内容按顺序复制到一个表中。100个EXCEL表名为ORANGE001到ORANGE100。谢谢了!
就是将100个独立的EXCEL文件(每个独立的EXCEL文件中包含两列数据)按 列 的顺序导入到一个新的EXCEL文件的第一张工作表中去

我可以帮你,但是程序可能需要根据你的需求做更改.

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

然后全部向下拖拽填充
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-11-26
只知道你的大概意思,可能跟我原来做的宏要求有点相似,不行你就改改吧

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本回答被提问者采纳
第2个回答  2008-11-26
for i=1 to 10
第3个回答  2008-11-24
38967098我来抢生意了

怎样利用excel中的单元格数据进行宏中vb编程得到一个循环运算?
在EXCEL中按ALT+F11进入VB编程环境,然后可以用VB语句对单元格进行操作,比如:cells(1,2).value=cells(1,1).value+1 就是把第一行第一列的数加上1再在第一行第二列的单元格中显示出来.

EXCEL的宏如何用VB编写循环
'使用:将要合并的工作簿拷贝到某文件夹下,新建一个工作簿后执行该宏 Dim WBName As String '汇总工作簿名称 Dim WBCurrent As String '当前正在合并的工作簿 Dim i As Integer Dim FileToOpen As Variant '选定的文件列表 '显示选择文件对话框,使用Ctrl或Shief键选取多个工作簿 FileToOpen = Ap...

EXCEL中的 vb 循环
Private Sub CommandButton1_Click()Dim id As String Dim num As Integer For x = 1 To 100 '行号从1到100 y = 1 '如果原数据不在第1列,可以修改1为对应列号。'提取原号码 id = Cells(x, y).Value '年份升位 id = Left(id, 6) + "19" + Right(id, 9)'计算校验码和 For ...

excel宏循环替换问题
然后在EXCEL表中按"视图-工具栏-窗体",调出窗体工具栏,用工具栏上的"按钮"控件在表格中添加一个按钮,再用鼠标右键点击这个按钮,选"指定宏",在弹出窗口中选中这个abc宏就行了.当然你也可以不用上面说的按钮,只要是能"指定宏"的对象(比如"艺术字"\\"图片"\\"图表"等)都可以.你只需要将上面代码中...

在Excel中如何使用VB语句实现自动运行宏
如果是打开Excel文件就自动运行宏,那么,可以在ThisWorkBook里面,在WorkBook_Open事件里面加入代码,这样启动Excel文件即可自动运行宏。或者在模块里面使用Auto_Open事件,也可以自动运行宏。如果是在Excel使用过程中使用宏,就必须根据你的需要,选择合适的事件来触发宏代码。比如,如果要A1单元格的值改变,就...

excel中VB如何运行excel中的vb怎么使用
excel 2010进入VB编辑器的具体步骤如下:我们需要准备的材料分别是:电脑、Excel表格。1、首先我们打开需要编辑的Excel表格,点击打开文件中的“选项”。2、然后我们在弹出来的窗口中点击打勾自定义功能区中的“开发工具”。3、然后我们点击打开开发工具中的“Visual Basic”即可。

excel中使用vb编写宏并使用
1.首先打开excel,选择功能区的视图-宏-录制宏 2.然后在弹出框中填写名称及其说明,便于多个宏时进行区分。点击确定。3.再次点击视图-宏,选择查看宏 4.选择你刚刚添加的宏,点击编辑,就会进入vb编辑器页面 5.在编辑器中编写你想要的功能,(例如截图中的A列第一行填写1,A列第二行填写2),保存...

如何用excel做出以下东东:数字1-15循环播放,敲下回车时自动停止在某个...
用EXCEL里的VBA,如果你会用的话,用到的语句都很简单 工具——宏——Visual Basic编辑器 插入个用户窗体userform1,在窗体上插一个标签label1,一个旋转按钮spinbutton1 双击此用户窗体进入代码编写,将下面的代码覆盖进去:Private Sub SpinButton1_Change()x = Abs(Me.SpinButton1.Value) Mod 15 If...

excel中vb循环代码,循环次数怎样通过取单元格内的值?
Visible = false不显示界面 strAddr = Server.MapPath(".")objExcelApp.WorkBooks.Open(strAddr & "\\1111.xls")set objExcelBook = objExcelApp.ActiveWorkBook set objExcelSheets = objExcelBook.Worksheets set objExcelSheet = objExcelBook.Sheets(1)aa=objExcelSheet.Cells(1,1).Value ...

如何用VB在excel里实现循环
Sub Macro1()'' Macro1 Macro ''Dim n As Integer For n = 1 To 4000 Step 1 Cells(n, 9).Value2 = Range("E1").Value2 Next End Sub

相似回答