目标是用sheet 2,3,4等所有数据完全填充sheet1 .
源表可能具有填充数据的可变行数,但是,行中没有间隙(即,其中包含数据的最后一行是该表中的最后一行数据) . 工作簿 .
-
从第2行第1行开始,将数据填入第1行 .
-
从第3行第1行开始,将数据填入sheet1,从下一个打开的行开始 .
-
重复,直到所有工作表都复制到sheet1中 .
基本上,所有其他工作表将用作工作空间,然后创建将导入另一个程序的最终连续工作表 .
我可能已经通过在宏中使用Sheets(“sheetname”)执行以下代码来完成我需要的工作 . 为每个工作表选择 . 我宁愿在For / Next循环中执行此操作以消除所有冗余行 .
Sub CreateImport()
Sheets("Import").Select
Range("A2").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.ClearContents
Range("A2").Select
Sheets("IOAccess").Select
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("Import").Select
ActiveSheet.Paste
Selection.End(xlDown).Select
Sheets("MemoryDisc").Select
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("Import").Select
ActiveSheet.Paste
etc...
2 回答
将来自单个工作簿中的多个表单的数据组合到单个工作表以与不同的程序一起使用是VBA非常适合的任务 .
下面的代码是 heavily ,用于解释每个步骤中发生的情况,尽管
LastOccupiedRowNum
和LastOccupiedColNum
函数不是 . 识别最后一个占用的行/列是VBA编程的基础,并在此处巧妙地解释:Error in finding last used cell in VBA简而言之,两个最重要的要点是Workbook.Worksheets属性和Range.Copy方法 .
像你上面看到的那样使用宏录像机是开始学习VBA的好方法,但是当涉及到循环时你很快就会碰壁 .
您可以在此4分钟的步行中看到此代码的运行情况,并了解有关所包含概念的更多信息:https://www.youtube.com/watch?v=vbC2lGLFXS0&feature=youtu.be
尝试Sheet1单元格A1
如果col A保存数字数据,则将最后一部分更改为“Col1不为空” .
看看这是否有效?