首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在VBA中跨定义的一组列合并行

在VBA中跨定义的一组列合并行
EN

Stack Overflow用户
提问于 2021-06-11 04:16:21
回答 1查看 29关注 0票数 0

我是VBA的新手,在编写一个脚本时遇到了麻烦,该脚本首先合并一组行(保留每行的所有内容),然后移动到定义的单元格范围中的下一列。这段excel vba代码实际上捕获了我要做的事情(https://excelchamps.com/vba/merge/),但我试图将它扩展到一个包含多个列的范围(特别是介于rng范围(“a25:ac29”)之间的范围)。

我的当前代码被复制到下面,但在val部分中总是出现Type错误。

提前感谢!

#试用版VBA代码##

代码语言:javascript
代码运行次数:0
运行
复制
**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**
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-11 04:29:32

这应该是可行的:

代码语言:javascript
代码运行次数:0
运行
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67927946

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档