如何在Excel vba中创建每个成对组合

时间:2016-03-01 17:11:35

标签: excel vba excel-vba

我在第1列和第2列(01到99)中列出了2位邮政编码的详尽清单。我想创建一个第三列,它将包含两位数邮政编码的每个成对组合。因此,我的数据看起来像这样,其中第3列包含第1列和第2列(9801行)的每个成对组合。

col1 col2  col3
01    01   01 to 01
02    02   02 to 02
03    03   03 to 03
04    04   04 to 04
05    05   05 to 05
06    06   06 to 06
.     .       .
.     .       .
99    99  99 to 99

有没有办法将它编码成一个简单的vba脚本?

2 个答案:

答案 0 :(得分:1)

与您的任务相关,您可以使用以下Excel VBA代码段:

Sub ColumnConcatenation()
    Dim i As Long, j As Long
    Const max = 99
    Application.ScreenUpdating = False
    For i = 1 To max
        For j = 1 To max
            Range("C" & (i - 1) * max + j) = Range("A" & i) & " to " & Range("B" & j)
        Next j
    Next i
    Application.ScreenUpdating = True
End Sub

希望这可能会有所帮助。

答案 1 :(得分:0)

我几乎没有VBA经验,但这比我原先想象的更容易理解。

Sub pairwise()

Dim x As Integer
Dim x2 As Integer
Dim x3 As Double

x3 = 1

For x = 1 To 99
    For x2 = 1 To 99

    Cells(x3, 5) = Cells(x, 1)
    Cells(x3, 6) = Cells(x2, 2)

    x3 = x3 + 1

    Next
Next
End Sub

这会创建2列,然后我可以通过粘贴=E1&" to "&F1中的公式G1:G9801来连接。如果有一种更优雅的方式,我很乐意接受这个作为答案。