Excel 宏以获取新工作表最后一列的值

Excel 宏以获取新工作表最后一列的值,excel,Excel,我试图创建一个宏,将每个工作表的最后一列(在我的例子中是列R)的值放入名为“MainSheet”的新工作表中 如果有4张图纸,则最后一列值应提取到主图纸A、B、C和D列 提前感谢假设您的数据总是从要复制的每张工作表的A1开始,那么这可能会让您开始: Sub CopyLastColumns() Dim cnt As Integer, sht As Worksheet, mainsht As Worksheet, col As Integer, rw As Integer Set

我试图创建一个宏,将每个工作表的最后一列(在我的例子中是列R)的值放入名为“MainSheet”的新工作表中

如果有4张图纸,则最后一列值应提取到主图纸A、B、C和D列


提前感谢

假设您的数据总是从要复制的每张工作表的
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
子CopyLastColumns()
Dim cnt为整数,sht为工作表,mainsht为工作表,col为整数,rw为整数
设置mainsht=工作表(“主工作表”)
cnt=1
对于工作表中的每个sht
如果短名称为“MainSheet”,则
短列(短范围(“A1”).CurrentRegion.Columns.Count)。复制
mainsht.Columns(cnt.Paste)特殊粘贴:=xlPasteValues,操作:=xlNone,SkipBlanks:=False,转置:=False
主列单元(10,cnt)=列范围(“A2”)
cnt=cnt+1
如果结束
下一步
与mainsht
对于col=1至cnt
对于rw=.Cells(65536,col).End(xlUp).Row To 1 Step-1
如果.Cells(rw,col)=“那么
.单元格(rw,col).删除移位:=xlUp
如果结束
下一个rw
下一列
以
端接头

R
始终是每张图纸中的最后一列,还是有所不同?列R始终是每张图纸中的最后一列非常感谢,这很好,但列R在每张图纸中都合并了单元格,合并的单元格范围为(R2:R25)、(R26:R49)、(R50:R73)、(R74:R97)、(R98:R121)、(R122:R145)、(R146:R169)这在每个工作表中都是恒定的,当我运行脚本时,由于合并的单元格,值不会以任何方式出现在后续行中,从而在没有合并单元格的情况下连续获取值?@user1292831-请参阅更新的代码。我添加了一个循环来删除
MainSheet
上的空单元格。我想这会给你你需要的,这正是我想要的:D,我还想得到单元格A2的值,它是每张纸上的一个名字,然后得到A10,B10,C10,D10中的数据。。主工作表的单元格如果有4张工作表,则应将4张工作表中的A2值提取到A10、B10、C10,主工作表中的D10是否有任何方法可以将提取到主工作表的数据移动1列,即从B列开始,将A列保留为空。您还可以帮助我获取单元格A2的值,这是每个工作表中的名称,并获取A10、B10、C10、D10中的数据。。主工作表的单元格如果有4张工作表,则应将4张工作表中的A2值提取到主工作表中的A10、B10、C10、D10