Excel 宏将值复制到范围的底部 单元格A1:D1包含变量计算 A1:D1以下的单元格将包含单元格A1:D1中的值 计算 我将命名为A1:D1-range01 我想要一个宏将值从A1:D1 range01复制到 下面相同列中的下一个可用行。所以第一个价值观 将转到A2:D2,第二层将转到A3:D3,等等。 此例程将嵌套在循环宏中。 谢谢,马克

Excel 宏将值复制到范围的底部 单元格A1:D1包含变量计算 A1:D1以下的单元格将包含单元格A1:D1中的值 计算 我将命名为A1:D1-range01 我想要一个宏将值从A1:D1 range01复制到 下面相同列中的下一个可用行。所以第一个价值观 将转到A2:D2,第二层将转到A3:D3,等等。 此例程将嵌套在循环宏中。 谢谢,马克,excel,Excel,幸运的是,Excel VBA提供了一个相当方便的函数来获取下一个可用空间 Sub copyToFreeSpace() Dim copyRange As Range Dim xSheet As Worksheet Dim freeRow As Long Set xSheet = ThisWorkbook.Worksheets("TABLENAME") 'Set the Worksheet here Set copyRange = xSheet.Range("A1:D1") 'Define Ran

幸运的是,Excel VBA提供了一个相当方便的函数来获取下一个可用空间

Sub copyToFreeSpace()
Dim copyRange As Range
Dim xSheet As Worksheet
Dim freeRow As Long

Set xSheet = ThisWorkbook.Worksheets("TABLENAME") 'Set the Worksheet here
Set copyRange = xSheet.Range("A1:D1") 'Define Range
freeRow = xSheet.Cells(xSheet.Rows.Count, 1).End(xlUp).Row + 1 'Get "free row"
xSheet.Range(xSheet.Cells(freeRow, 1), xSheet.Cells(freeRow, 4)) = copyRange.Value 'Copy value from above range
End Sub

价值转移更快!此外,由于这将在一个循环内,因此每次都需要重新调整最后一个空闲行,否则将继续粘贴相同的值

下面是一个示例代码,在递增最后一行时循环48次


@谢谢你指出我的错误-我现在编辑了我的答案
Option Explicit

Sub ValueTransfer()

Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sheet1") '<-- Update
Dim rCopy As Range, LR As Long, i As Long

Set rCopy = ws.Range("A1:D1")
LR = ws.Range("A" & ws.Rows.Count).End(xlUp).Offset(1).Row

For i = 2 To 50
    ws.Range("A" & LR).Resize(1, 4).Value = rCopy.Value
    LR = LR + 1
Next i

End Sub
`.Resize(rCopy.Rows.Count, rCopy.Columns.Count)