我的代码应该从一个工作簿中获取联系信息,为列表中的每个人创建一个新的工作簿并传输他们的信息。当我尝试运行我的宏时,它在Set pathOrig = ActiveWorkbook.path
行给出了一个错误。它说
编译错误:需要对象
任何人都知道我的错误是什么? (对不起我的代码中的法语部分)
Sub generateFichier()
Dim orig, dest As Range
Dim classOrig, classDest As Workbook
Dim pathOrig As String
Dim nom, prenom, faitPar As String
Dim sommeCap, sommeCapActuel As Long
Set classOrig = ActiveWorkbook
Set pathOrig = ActiveWorkbook.path
Set orig = Sheets("clients").Range("A2")
For i = 1 To 7 Step 1
nom = orig.Offset(i, 0).Value
prenom = orig.Offset(i, 1).Value
sommeCap = orig.Offset(i, 3).Value + orig.Offset(i, 5).Value
sommeCapActuel = orig.Offset(i, 4).Value + orig.Offset(i, 7).Value
faitPar = classOrig.Sheets(1).PageSetup.RightFooter
Dim nomFichier As String
nomFichier = nom & ".xls"
Set classDest = Workbooks.Add(pathOrig & "\" & nomFichier)
classDest.Sheets(1).Range("B1").Value = nom
classDest.Sheets(1).Range("B2").Value = prenom
classDest.Sheets(1).Range("A5").Value = sommeCap
classDest.Sheets(1).Range("B5").Value = sommeCapActuel
classDest.Sheets(1).Range("B13").Value = faitPar
For j = 1 To 6 Step 1
Select Case j
Case 1 To 3
classOrig.Cells(i, j).Value = classDest.Sheets(1).Cells(j + 7, 2).Value
Case 4 To 6
classOrig.Cells(i, j).Value = classDest.Sheets(1).Cells(j + 4, 3).Value
End Select
Next j
classDest.SaveAs Filename:=pathOrig & "\" & nomFichier, FileFormat:=xlNormal
Next i
End Sub
答案 0 :(得分:1)
工作簿的路径是包含工作簿的文件夹的字符串,而不是工作簿本身。因此,您不要将对象var设置为.Path;您可以简单地将.Path分配给字符串变量。
dim pathOrig as string
pathOrig = activeworkbook.path
debug.print pathOrig
答案 1 :(得分:1)
您不需要“设置”字符串,pathOrig只是一个字符串,而不是像classOrig这样的工作簿对象。
只需删除该行中的Set语句即可。