先谢谢了。 如果有任何人对这一切有足够的了解,我会很高兴;-)而且不必在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)