Excel 均匀分布A列到B列的单元格值
我对Excel VBA非常陌生,所以请对我好:) 我的问题是我想复制A列的值,直到最后一个有值的单元格,然后分别粘贴到B C D 范例 列A有3行,分别为Tim、john和Mer 我想把它分别粘贴到B2列、C2列和D2列 问题:列A的行数是动态的,所以我希望它复制到最后一个notempty单元格。但当列A大于3(要粘贴的列数)时,它将循环并粘贴到B3,然后是C3,然后是D3,依此类推,直到所有非空单元格均匀分布到3列(B、C和D)Excel 均匀分布A列到B列的单元格值,excel,vba,Excel,Vba,我对Excel VBA非常陌生,所以请对我好:) 我的问题是我想复制A列的值,直到最后一个有值的单元格,然后分别粘贴到B C D 范例 列A有3行,分别为Tim、john和Mer 我想把它分别粘贴到B2列、C2列和D2列 问题:列A的行数是动态的,所以我希望它复制到最后一个notempty单元格。但当列A大于3(要粘贴的列数)时,它将循环并粘贴到B3,然后是C3,然后是D3,依此类推,直到所有非空单元格均匀分布到3列(B、C和D) 希望这个问题很清楚可以使用转置功能吗 Sub CopyData(
希望这个问题很清楚可以使用
转置
功能吗
Sub CopyData()
Dim x As Long, i As Long
Application.ScreenUpdating = False
For i = 1 To 100 Step 3
x = x + 1
Range("A" & i & ":A" & i + 2).Copy
Range("B" & x).PasteSpecial xlPasteValues, , , True
Next i
Application.ScreenUpdating = True
End Sub
Sub TransposeToColumns()
Dim lLastRow As Long
With ThisWorkbook.Worksheets("Sheet1")
'Get the last row (same as going to end of sheet and pressing Ctrl+Up).
lLastRow = .Range("A" & Rows.Count).End(xlUp).Row
If lLastRow > 3 Then
'Cells(1,2) is row 1, column 2.
With .Range(.Cells(1, 2), .Cells(1, lLastRow + 1))
'R1C1 style of referencing - absolute reference to A1 is R1C1 (row 1 column 1).
.FormulaArray = "=TRANSPOSE(R1C1:R" & lLastRow & "C1)"
'Replace formula with values.
.Value = .Value
End With
End If
End With
End Sub
刚刚意识到-如果您尝试使用超过16383行(即列数-1)执行此操作,则会出现错误。但它将在0.040464696631069秒内完成所有列的操作。:) 试着录制一个宏,看看你得到了什么代码。试着写两个嵌套循环。一个将循环A1到A100,内部将切换B、C、D并写入值