如何使Excel宏记录在下一行重复,直到没有更多数据

如何使Excel宏记录在下一行重复,直到没有更多数据,excel,vba,Excel,Vba,我是VBA新手,我现在要做的是让这个宏记录代码在单元格1、单元格2、单元格3上重复这个过程,直到A列中没有更多的数据字段。基本上,它应该复制A1中的一个单元格,复制到book 2,然后点击刷新数据,然后将一些信息复制回Book1 并从A1开始重复,直到A列中不再有包含数据的单元格 我曾试着在网上阅读,但我想不出来 Sub Macro1() ' ' Macro1 Macro ' ' Range("A2").Select Selection.Copy Windows("Book2").Activa

我是VBA新手,我现在要做的是让这个宏记录代码在单元格1、单元格2、单元格3上重复这个过程,直到A列中没有更多的数据字段。基本上,它应该复制A1中的一个单元格,复制到book 2,然后点击刷新数据,然后将一些信息复制回Book1 并从A1开始重复,直到A列中不再有包含数据的单元格

我曾试着在网上阅读,但我想不出来

Sub Macro1()
'
' Macro1 Macro
'

'
Range("A2").Select
Selection.Copy
Windows("Book2").Activate
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, 
SkipBlanks _
    :=False, Transpose:=False
Application.CutCopyMode = False
ActiveWorkbook.RefreshAll
Windows("Book1").Activate
Range("F2").Select
Windows("Book2").Activate
Range("K6").Select
Selection.Copy
Windows("Book1").Activate
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, 
SkipBlanks _
    :=False, Transpose:=False
Windows("Book2").Activate
Range("L6").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Book1").Activate
Range("G2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, 
SkipBlanks _
    :=False, Transpose:=False
Range("G3").Select
End Sub

您可以这样做:

Sub Macro1()
    Dim c As Range, sht2 As Worksheet

    'adjust sheet names as required    
    Set c = Workbooks("Book1").Sheets("Sheet1").Range("a2")
    Set sht2 = Workbooks("Book2").Sheets("Sheet1")

    Do while Len(c.value) > 0

        sht2.Range("A2").Value = c.value
        sht2.Parent.RefreshAll

        'fixed source cells
        c.EntireRow.Cells(6).Value = sht2.Range("K6").Value
        c.EntireRow.Cells(7).Value = sht2.Range("L6").Value 

        '...or last populated cells in K,L
        c.EntireRow.Cells(6).Value = sht2.Cells(rows.count, "K").End(xlUp).Value
        c.EntireRow.Cells(7).Value = sht2.Cells(rows.count, "L").End(xlUp).Value 

        Set c = c.Offset(1, 0) 'next cell down
    Loop


End Sub

您可能会从阅读中受益。非常感谢您,您能让它查找K列和L列中的最后一个单元格,而不仅仅是K6和L6单元格吗?非常感谢您让我开心!!没问题-请注意,最后一行方法假设K和L中都有内容,如果其中一个内容缺失,您将从不同的行获得结果。以防万一这很重要。