重复值 - Microsoft Excel

重复值 - Microsoft Excel

我每个月都会收到一份大型电子表格,需要手动输入最多 6 个相同客户 ID 的实例。我想设计一个宏或 VBA 代码,它将获取我的客户列表并在单独的行上创建一系列重复值。例如,A 列当前包含以下内容:

     A
1  Cust1
2  Cust2
3  Cust3

我的 VBA/宏将生成以下输出:

     A
1   Cust1
2   Cust1
3   Cust1
4   Cust1
5   Cust1
6   Cust1
7   Cust2
8   Cust2
9   Cust2
10  Cust2
11  Cust2
12  Cust2

谢谢!

答案1

使用 VBA 的宏:

Public Sub customCustomers()
    Application.ScreenUpdating = False
    sourceSheet = "Sheet1"
    destSheet = "Sheet2"
    initialSrcRow = 1
    initialDstRow = 1
    times = 6
    Dim wkb As Workbook
    Dim wks, wks1 As Worksheet
    Set wkb = ThisWorkbook
    Set wks = wkb.Sheets(sourceSheet)
    Set wks1 = wkb.Sheets(destSheet)
    wks1.Rows.Clear
    seeking = True
    While seeking
        theCustomer = wks.Cells(initialSrcRow, 1)
        If theCustomer <> "" Then
            For i = 1 To times
                wks1.Cells(initialDstRow, 1) = theCustomer
                initialDstRow = initialDstRow + 1
            Next i
            initialSrcRow = initialSrcRow + 1
        Else
            seeking = False
        End If
    Wend
    Application.ScreenUpdating = True
    theMessage = MsgBox("Finished copying customers on Sheet: " & destSheet, vbOKOnly)
End Sub

打开 VBA/Macros,在本工作簿插入一个新模块并将此代码粘贴到右侧。

您可以调整以下变量以满足您的需要:

  • sourceSheet:原始工作表的名称,在我的示例中是 工作表1

  • destSheet:目标表的名称,在我的示例中是 工作表2

  • initialSrcRow:源工作表的第一行。

  • initialDstRow:目标工作表的第一行。

  • times:客户必须在目标表上重复的次数。

相关内容