合并2个工作表并多次复制工作表的所有行

时间:2019-03-19 09:15:21

标签: excel vba copy row

先谢谢了。 如果有任何人对这一切有足够的了解,我会很高兴;-)而且不必在VBA中,如果可能的话,也欢迎使用excel公式解决方案。

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

工作表1:

CompanyA | AdressA | CityA

CompanyB | AdressB | CityB

工作表2:

Task1 | Explanation1 | Duration1

Task2 | Explanation2 | Duration2

要创建的新工作表3:

CompanyA | AdressA | CityA | Task1 | Explanation1 | Duration1

CompanyA | AdressA | CityA | Task2 | Explaation2 | Duration2

CompanyB | AdressB | CityB | Task1 | Explanation1 | Duration1

CompanyB | AdressB | CityB | Task2 | Explaation2 | Duration2

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

我做了一点定制(我的excel版本是荷兰语,所以“工作表”是“ 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

此行出现错误(错误13类型不匹配):

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

1 个答案:

答案 0 :(得分:0)

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

enter image description here enter image description here enter image description here