在 VBA 中跨定义的列集合并行
Merge rows across defined set of columns in VBA
我想合并一组行(保留每行的所有内容),然后移至定义的单元格范围内的下一列。
我正在尝试将此 Excel VBA 代码 (https://excelchamps.com/vba/merge/) 扩展到具有多个列的范围(特别是 Range("A25:AC29")。
我的代码在 val 部分出现类型错误。
Sub vba_merge_with_values()
Dim val As String
Dim rng As Range
Dim Cell As Range
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Project Details")
Set rng = ws.Range("A25:A29")
For Each Column In rng.Columns
For Each Cell In rng.Rows
val = val & " " & Cell(Row, Column).Value
Next Cell
With rng.Rows
.Merge
.Value = Trim(val)
.WrapText = True
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With
Next Column
End Sub
这应该有效:
Sub vba_merge_with_values()
Dim Column As Range, rng As Range
Set rng = ThisWorkbook.Worksheets("Project Details").Range("A1:G9")
For Each Column In rng.Columns
With Column
.Cells(1).Value = Join(Application.Transpose(Column.Value), " ")
Application.DisplayAlerts = False
.Merge
Application.DisplayAlerts = True
.WrapText = True
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With
Next Column
End Sub
我想合并一组行(保留每行的所有内容),然后移至定义的单元格范围内的下一列。
我正在尝试将此 Excel VBA 代码 (https://excelchamps.com/vba/merge/) 扩展到具有多个列的范围(特别是 Range("A25:AC29")。
我的代码在 val 部分出现类型错误。
Sub vba_merge_with_values()
Dim val As String
Dim rng As Range
Dim Cell As Range
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Project Details")
Set rng = ws.Range("A25:A29")
For Each Column In rng.Columns
For Each Cell In rng.Rows
val = val & " " & Cell(Row, Column).Value
Next Cell
With rng.Rows
.Merge
.Value = Trim(val)
.WrapText = True
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With
Next Column
End Sub
这应该有效:
Sub vba_merge_with_values()
Dim Column As Range, rng As Range
Set rng = ThisWorkbook.Worksheets("Project Details").Range("A1:G9")
For Each Column In rng.Columns
With Column
.Cells(1).Value = Join(Application.Transpose(Column.Value), " ")
Application.DisplayAlerts = False
.Merge
Application.DisplayAlerts = True
.WrapText = True
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
End With
Next Column
End Sub