【问题标题】:Merge rows across defined set of columns in VBA在 VBA 中跨定义的列集合并行
【发布时间】:2021-08-27 20:42:12
【问题描述】:

我对 VBA 非常陌生,并且在编写首先合并一组行(保留每行的所有内容)然后移动到定义的单元格范围中的下一列的脚本时遇到了麻烦。这个 excel vba 代码基本上捕捉了我想要做的事情(https://excelchamps.com/vba/merge/),但我试图将它扩展到一个包含多列的范围(特别是 rng Range("A25:AC29") 之间的范围。

我当前的代码被复制到下面,但在 val 部分不断给我一个类型错误。

提前致谢!

############################################# 试用VBA代码###################################

**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**

【问题讨论】:

    标签: excel vba loops merge range


    【解决方案1】:

    这应该可行:

    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
    

    【讨论】:

      猜你喜欢
      • 2012-11-20
      • 1970-01-01
      • 2021-05-07
      • 2018-12-11
      • 2014-05-11
      • 1970-01-01
      • 2022-07-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多