Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA获取合并单元格的内容_Excel_Vba - Fatal编程技术网

Excel VBA获取合并单元格的内容

Excel VBA获取合并单元格的内容,excel,vba,Excel,Vba,我有这张床单 在VBA中,我得到第8行列AV、AU、AW的内容,如下所示 .Cells(row_level - 1, col_comment) 第7行是合并的单元格。如果列是AV、AU或AW,我想获取AV的内容。棘手的是,并不总是有三个合并列。可能有2到7个。试试看 Sub test() Dim rngDB As Range, rng As Range Dim vR() Dim i As Long, n As Long, j As Integer Set r

我有这张床单

在VBA中,我得到第8行列AV、AU、AW的内容,如下所示

.Cells(row_level - 1, col_comment)
第7行是合并的单元格。如果列是AV、AU或AW,我想获取AV的内容。棘手的是,并不总是有三个合并列。可能有2到7个。试试看

Sub test()
    Dim rngDB As Range, rng As Range
    Dim vR()
    Dim i As Long, n As Long, j As Integer

    Set rngDB = Range("au8", Range("au" & Rows.Count).End(xlUp))

    For Each rng In rngDB
        If rng.MergeCells Then
            If rng.Address = rng.MergeArea.Range("a1").Address Then
                n = n + 1
                ReDim Preserve vR(1 To 3, 1 To n)
                For j = 1 To 3
                    vR(j, n) = rng(1, j)
                Next j
            End If
        Else
            n = n + 1
            ReDim Preserve vR(1 To 3, 1 To n)
            For j = 1 To 3
                vR(j, n) = rng(1, j)
            Next j
        End If
    Next rng
    Sheets.Add
    Range("a1").Resize(n, 3) = WorksheetFunction.Transpose(vR)
End Sub

如果
.Cells(r,c)
引用合并范围内的任何单元格,
.Cells(r,c).MergeArea.Cells(1,1).Value
将返回有效的合并区域值。非常感谢。