Ich erhalte einen Index außerhalb des Bereichsfehlers, wenn ein anderer Benutzer mein Add-In ausführt, aber keine Probleme bei der Ausführung desselben Codes selbst habe. Dies geschieht beim Festlegen eines Arbeitsmappenwerts. Der Dateiname wird generiert, indem das aktuelle Datum abgerufen und als Gendate gespeichert wird. Von diesem wird der Dateiname basierend auf dem Dateipfad, den der Benutzer erstellt hat, erstellt und gespeichert. In diesem Beispiel ist der Wert von gv.Range ("b2"). Text c: \ Benutzer \ Benutzername \ Desktop \ ReportGeneration. fp ist daher C: \ Benutzer \ dmulhausen \ Desktop \ ReportGeneration \ TSReports9_6_201615h5m32s.xlsx Dies erzeugt keinen Fehler für mich, aber es erzeugt einen Fehler für einen anderen Benutzer des Skripts.Index außerhalb des Bereichsfehler 9 vba
Dim ai As Workbook 'add in data ---Initialized in Report Setup
Dim dwb As Workbook 'destination workbook ---Initialized in Report Setup
Dim ss As Worksheet 'source sheet
Dim ds As Worksheet 'destination sheet or writing sheet
Dim rv As Worksheet 'reporting variables sheet ---Initialized in Report Setup
Dim pv As Worksheet 'ts variables sheet ---Initialized in Report Setup
Dim gv As Worksheet 'global ai variables ---Initialized in Report Setup
Dim tempstr As String
Dim fp As String 'file path ---Initialized in Report Setup
Dim gendate As Date
Dim reportscreated As Integer
Dim initialized As Boolean
Dim sheetnames(1 To 12) As String
Sub reportsetup()
Set ai = Workbooks("TSReports add in.xlam")
Set rv = ai.Worksheets("ReportVars")
Set pv = ai.Worksheets("TS1_2Vars")
Set gv = ai.Worksheets("globalVars")
If (IsEmpty(gv.Range("b2").Value)) Then
MsgBox ("Please select a designated folder for reports")
With Application.FileDialog(msoFileDialogFolderPicker)
.AllowMultiSelect = False
.Show
If .SelectedItems.Count > 0 Then
gv.Range("b2").Value = .SelectedItems(1)
End If
ai.Save
End With
End If
initialized = True
gendate = Now()
tempstr = "TSReports" & Month(gendate) & "_" & Day(gendate) & "_" & Year(gendate) & Hour(gendate) & "h" & Minute(gendate) & "m" & Second(gendate) & "s"
fp = gv.Range("b2").Text & "\" & tempstr & ".xlsx"
Workbooks.Add
Application.DisplayAlerts = False
Application.AlertBeforeOverwriting = False
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=fp
Set dwb = Workbooks(tempstr) '*******Error occurs here*******