В приведенном ниже коде я создал массив с набором рабочих листов (по имени), которые я затем обработаю в PDF-файл. Ранее я делал подобный код без проблем.
Однако на этот раз кодирование «SELECT» создает «Ошибка 1004: ошибка приложения или объекта». Я пытался использовать Worksheets (). Select и wkBkObj.Worksheets (). Select, чтобы заменить Sheets (). Выберите в коде ниже. В каждом случае одна и та же ошибка.
Любая помощь будет приветствоваться! Раздел кода ниже:
Dim arrSplit, arrTemp, vbResult, arrWorkSheetNames() As Variant
Set wbThisWorkBook = ThisWorkbook '<--- wbThisWorkBook is passed in as a parameter
wbThisWorkBook.Activate
iCount = wbThisWorkBook.Worksheets.Count
ReDim arrWorkSheetNames(1 To iCount)
For i = 1 To iCount
bOKToAdd = True
sTemp3 = UCase(wbThisWorkBook.Worksheets(i).Name)
For j = LBound(arrStringsToMatch) To UBound(arrStringsToMatch)
sTemp4 = UCase(CStr(arrStringsToMatch(j)))
iTemp = CInt(StrComp(UCase(sTemp3), UCase(sTemp4), vbTextCompare))
If (iTemp = 0) Then
bOKToAdd = False
Exit For
End If
Next
If bOKToAdd Then
iNumElements = iNumElements + 1
arrWorkSheetNames(iNumElements) = ActiveWorkbook.Worksheets(i).Name 'Add to array
End If
Next
If (iNumElements > 0) Then
ReDim Preserve arrWorkSheetNames(1 To iNumElements)
Sheets(arrWorkSheetNames).Select 'This is where Error: 1004 occurs!
With Sheets(arrWorkSheetNames(1))
If ((.Visible <> xlSheetHidden) And (.Visible <> xlSheetVeryHidden)) Then
.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sFileSaveAsFullName, _
Quality:=xlQualityStandard, OpenAfterPublish:=True
End If
End With
Else
'<do something else>
End If