2012-04-19 33 views
0

我想创建一个宏来得到最后一列的每个表的值(在我的情况列R)到一个名为“MainSheet”宏来得到最后一列的值,以新的工作表

新的工作表如果有4张的最后一列值应取到mainsheet列A,B,C & d提前

感谢

+0

栏“R”总是您在每张表中的最后一列还是会有所不同? – 2012-04-19 18:06:24

+0

列R始终是每个工作表中的最后一列 – user1292831 2012-04-20 04:26:18

回答

1

假设你的数据总是以A1在每个薄片上的要从那里复制这可能会让你开始:

Sub CopyLastColumns() 
    Dim cnt As Integer, sht As Worksheet, mainsht As Worksheet, col As Integer, rw As Integer 

    Set mainsht = Worksheets("MainSheet") 

    cnt = 1 
    For Each sht In Worksheets 
     If sht.Name <> "MainSheet" Then 
      sht.Columns(sht.Range("A1").CurrentRegion.Columns.Count).Copy 
      mainsht.Columns(cnt).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 
      mainsht.Cells(10, cnt) = sht.Range("A2") 
      cnt = cnt + 1 
     End If 
    Next sht 

    With mainsht 
     For col = 1 To cnt 
      For rw = .Cells(65536, col).End(xlUp).Row To 1 Step -1 
       If .Cells(rw, col) = "" Then 
        .Cells(rw, col).Delete Shift:=xlUp 
       End If 
      Next rw 
     Next col 
    End With 

End Sub 
+0

非常感谢,此工作非常完美,但列R已合并每个工作表中的单元格,合并的单元格范围为(R2:R25),(R26:R49),( R50:R73),(R74:R97),(R98:R121),(R122:R145),(R146:R169) 这在每张表中都是不变的,当我运行脚本时,由于合并的单元格,在后续的行 任何方式来获取值连续没有合并单元格之间? – user1292831 2012-04-20 04:33:10

+1

@ user1292831 - 查看更新的代码。我添加了一个循环来删除'MainSheet'上的空单元格。我认为这给你你需要的东西。 – 2012-04-20 07:52:52

+0

这正是我想要的:D,我也想获得单元格A2的值,它是每个表单中的名称,并获取主数据单元的A10,B10,C10,D10 ..单元格中的数据。如果有4个单元格从4张纸张的A2值应该被提取到主板上的A10,B10,C10,D10 – user1292831 2012-04-20 08:15:18

相关问题