我目前正在使用以下代码为C列中的单元格数据添加换行符并将其复制到列K.我需要对一系列数据应用换行符。我在C列中有1000行数据。 任何帮助将不胜感激。
Sub Macro
Dim Stem As Variant
Stem = ThisWorkbook.Worksheets ("Sheet1").Range("C2")
Range ("K2").Select
Range("K2").FormulaR1C1 = Stem & Chr(10) & ""
End Sub
由于
答案 0 :(得分:1)
有几件事:
试试这个:
Sub Macro
Dim WS As Worksheet
Dim Stem As Range
Dim R2 As Range
Dim Rng as Range
Set WS = ActiveWorkbook.Sheets("Sheet1")
Set Stem = WS.Range("C2", Cells(WS.Range("C2").End(xlDown).Row, WS.Range("C2").Column))
Set R2 = WS.Range("K2", Cells(Stem.End(xlDown).Row, WS.Range("K2").Column))
R2.Value = Stem.Value
'New Code
For Each Rng In R2
Rng.Value = Rng.Value & Chr(10) & ""
Next Rng
'Old Code: R2.End(xlDown) = R2.End(xlDown) & Chr(10) & ""
End Sub
这样做首先设置您正在使用的工作表。然后,使用Range(cell1,cell2)格式设置工作范围(Stem)。 Cell1我定义为“C2”。下一个表达式是使用Cells()函数。这是VBA相当于在“C2”中击中Ctl + Down,然后看到你在哪一行。
然后,我以类似的方式设置目的地范围R2,但我使用Stem范围来确定它应该有多大。
最后,要获得准确的副本,目标范围必须与您的范围相同。 .value到.value表达式会粘贴数据。然后,您的额外字符将添加到新数据字段中。
要记住的事项.End(xlDown)...如果数据中间有空白行,它将停在那里,而不是一直到最后。希望这有帮助!
修改强>
For Each
循环将遍历目标范围R2中的每个范围(即单元格),并添加新字符。希望更适合你。
答案 1 :(得分:1)
试试这个:
Sub copyAndNewLine()
'copy column C to K
Columns("C").Copy Destination:=Columns("K")
'loop through all cells in K and add new line
For i = 2 To Cells(Rows.Count, "K").End(xlUp).Row
Cells(i, "K").Value = Cells(i, "K").Value & vbCrLf
Next i
End Sub
答案 2 :(得分:0)
感谢大家的回答。我的atlas能够编写我的第一个脚本,并获得了在单元格中添加换行符的代码。
Sub AddLineBreak()
Dim Stem As Variant
Stem = ThisWorkbook.Worksheets("Sheet1").Range("C2")
Dim i As Integer
i = 2
'this will terminate the loop if an empty cell occurs in the middle of data
Do While Cells(i, "C").Value <> ""
Cells(i, "K").Value = Cells(i, "C").Value & vbCrLf
i = i + 1
Loop
End Sub