【问题标题】:Merging 2 worksheets and copy all rows of worksheet 1 multiple times合并 2 个工作表并多次复制工作表 1 的所有行
【发布时间】:2019-03-19 09:15:21
【问题描述】:

提前致谢。 如果有人知道这一切,我会非常高兴;-) 这不一定是在 VBA 中,如果可能的话,也欢迎使用 excel 公式的解决方案。

我正在尝试执行以下操作: 有一个包含 6000 多个公司名称的工作表。另一个工作表显示了可以签署给每个公司的任务类型。 我想创建一个新的工作表,其中每个公司名称都有 n 次,并且在每行的最后一列之后是其中一个任务。

工作表1:

公司A|地址A|城市A

公司B|地址B|城市B

工作表2:

任务1|说明1|持续时间1

任务2|解释2|持续时间2

要创建的新 Worksheet3:

公司A|地址A|城市A|任务1|说明1|持续时间1

公司A|地址A|城市A|任务2|说明2|持续时间2

公司B|地址B|城市B|任务1|说明1|持续时间1

公司B|地址B|城市B|任务2|说明2|持续时间2

开始的方式是复制 worksheet1 的行 n 次,我发现了一个可能有用的旧线程。 This is where I found something about copying 1 row multiple times

我定制了一点(我的 excel 版本是荷兰语,所以“sheet”是“blad”)。不幸的是,这不起作用并给出了错误。

    Sub DuplicateRows()

Dim currentRow As Integer
Dim currentNewSheetRow As Integer: currentNewSheetRow = 1

For currentRow = 1 To 5 'The last row of your data

    Dim timesToDuplicate As Integer
    timesToDuplicate = CInt(Blad1.Range("O" & currentRow).Value2) ' Error line

    Dim i As Integer
    For i = 1 To timesToDuplicate

        Blad3.Range("A" & currentNewSheetRow).Value2 = Blad1.Range("A" & currentRow).Value2
        Blad3.Range("B" & currentNewSheetRow).Value2 = Blad1.Range("B" & currentRow).Value2
        Blad3.Range("C" & currentNewSheetRow).Value2 = Blad1.Range("C" & currentRow).Value2

        currentNewSheetRow = currentNewSheetRow + 1

    Next i

Next currentRow

End Sub

此行出现错误(error 13 Type mismatch):

timesToDuplicate = CInt(Blad1.Range("O" & currentRow).Value2)

【问题讨论】:

  • 您要求的是笛卡尔积,这是您可以使用 Power Query 执行的操作。 Google for excel power query cartesian product 你会发现很多指南
  • @你能上传两张纸的图片吗?
  • 我发布了图片。让真实数据的私密性变得简单;-)

标签: excel vba copy row


【解决方案1】:

@Error1004:这是工作表的图像。

【讨论】:

    猜你喜欢
    • 2015-12-27
    • 2018-04-09
    • 2018-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-26
    • 2011-08-31
    • 1970-01-01
    相关资源
    最近更新 更多