Excel 具有动态范围的串联函数

Excel 具有动态范围的串联函数,excel,range,Excel,Range,我想要一个带有动态范围的串联函数。范围可能非常不同,请参见下面的示例。通过一个简单的代码可以做到这一点吗 该范围仅适用于列中非空单元格数不同的行。我还需要每两个单元格配对一次,如示例所示。试试这个-您可能需要将C1更改为数据的开头 Sub test() i = 0 i2 = 0 With ActiveSheet For Each cell In .Range("C1:" & .Range("C1").End(xlDown).Address) i2 = 0

我想要一个带有动态范围的
串联
函数。范围可能非常不同,请参见下面的示例。通过一个简单的代码可以做到这一点吗


该范围仅适用于列中非空单元格数不同的行。我还需要每两个单元格配对一次,如示例所示。

试试这个-您可能需要将C1更改为数据的开头

Sub test()
i = 0
i2 = 0
With ActiveSheet
    For Each cell In .Range("C1:" & .Range("C1").End(xlDown).Address)
        i2 = 0
        temp = ""
        For Each c In .Range(.Cells(cell.Row, 3), .Cells(cell.Row, 3).End(xlToRight).Address)
            If i = 0 Then
                i = 1
            Else 'every other column
                If i2 = 0 Then'first for each row needs no extra comma
                    i = 0
                    temp = "(" & .Cells(cell.Row, -1 + c.Column).Value & "," & .Cells(cell.Row, 1 + c.Column).Value & ")"
                Else
                    i = 0
                    temp = temp & ",(" & .Cells(cell.Row, -1 + c.Column).Value & "," & .Cells(cell.Row, c.Column).Value & ")"
                End If
                i2 = i2 + 1
            End If
        Next
        .Cells(cell.Row, 1).Value = temp 'put string into column A
    Next
End With
End Sub

尝试此操作-您可能需要将C1更改为数据的开头

Sub test()
i = 0
i2 = 0
With ActiveSheet
    For Each cell In .Range("C1:" & .Range("C1").End(xlDown).Address)
        i2 = 0
        temp = ""
        For Each c In .Range(.Cells(cell.Row, 3), .Cells(cell.Row, 3).End(xlToRight).Address)
            If i = 0 Then
                i = 1
            Else 'every other column
                If i2 = 0 Then'first for each row needs no extra comma
                    i = 0
                    temp = "(" & .Cells(cell.Row, -1 + c.Column).Value & "," & .Cells(cell.Row, 1 + c.Column).Value & ")"
                Else
                    i = 0
                    temp = temp & ",(" & .Cells(cell.Row, -1 + c.Column).Value & "," & .Cells(cell.Row, c.Column).Value & ")"
                End If
                i2 = i2 + 1
            End If
        Next
        .Cells(cell.Row, 1).Value = temp 'put string into column A
    Next
End With
End Sub

这将有助于了解您还需要哪些其他范围?下一个是C18、D18、E18、F18吗?每行的etc?@99m编号。该范围仅适用于非空单元格数量不同的行。我还需要每两个单元格配对一次,就像在例子中一样。这将有助于了解您还需要哪些其他范围?下一个是C18、D18、E18、F18吗?每行的etc?@99m编号。该范围仅适用于非空单元格数量不同的行。我还需要每两个单元格配对一次,就像在例子中一样。这将有助于了解您还需要哪些其他范围?下一个是C18、D18、E18、F18吗?每行的etc?@99m编号。该范围仅适用于非空单元格数量不同的行。我还需要每两个单元格配对一次,如示例中所示。