【发布时间】:2020-11-25 05:17:29
【问题描述】:
我有一个宏可以将一些单元格连接在一起,然后将其粘贴到工作表 2 和 3。但是我需要它重复每个单元格两次
Sheet2 只需要从单元格 A2 到 A14 并从 J14 开始粘贴到 Sheet2
Sheet3 需要从单元格 A15 到最后一行的所有内容,并从 J8 开始粘贴到 Sheet3 中
我的代码似乎不适用于我的 sheet3,但 sheet1 工作正常
示例:在我的工作表 1 中将是
A | B | C
--------------------
Name1 | date | info
Name2 | date | info
在我连接所有我需要的东西之后
A |
--------------------
Name1 - date - info |
Name1 - date - info |
Name2 - date - info |
Name2 - date - info |
我当前的代码:
Sub Concat()
Sheets("Sheet1").Select
Dim lRow As Long, i As Long
Dim rng As Range
Dim lr2 As Long
Set rng = Range("A16:A" & Cells(Rows.Count, "A").End(xlUp).Row)
Set rng2 = Range("A15:A" & Cells(Rows.Count, "A").End(xlUp).Row)
Debug.Print rng.Address(External:=True)
lr2 = 1
lRow = rng.Row
For i = 2 To lRow
ActiveWorkbook.Sheets("Sheet2").Cells(i + 12, 10) = Cells(i, 1) & " - " & Cells(i, 2) & " - " & Cells(i, 3) & " - " & Cells(i, 4)
Next i
lRow2 = rng2.Row
For i = 2 To lRow2
ActiveWorkbook.Sheets("Sheet3").Cells(i + 6, 10) = Cells(i + 15, 1) & " - " & Cells(i + 15, 2) & " - " & Cells(i + 15, 3) & " - " & Cells(i + 15, 4)
Next i
End Sub
我找到了一个重复该列的代码,但我无法在我的代码中实现它
Sub copPas()
Dim s1 As Worksheet, s2 As Worksheet
Set s1 = Worksheets("Sheet1")
Set s2 = Worksheets("Sheet2")
Dim lr As Long, lr2 As Long
Dim i As Long
lr = s1.Range("A" & Rows.Count).End(xlUp).Row
lr2 = 1
Application.ScreenUpdating = False
For i = 1 To lr
s2.Range("A" & lr2).Resize(2).Value = s1.Range("A" & i).Value
lr2 = lr2 + 2
Next i
Application.ScreenUpdating = True
End Sub
【问题讨论】:
-
另一种方式逻辑:1.粘贴一次数据2.到最后一行再粘贴一次3. 对数据进行排序