我寫如果用戶選擇一個複選框,包括該板在PDF報告,以打造基於字符串表的列表一些代碼。請看下圖:選擇多個Excel表導出爲PDF
If CheckBox1.Value = True Then
PDFsheets = "Sheet11"
End If
If CheckBox2.Value = True Then
If PDFsheets = "" Then
PDFsheets = "Sheet13"
Else
PDFsheets = PDFsheets & ",Sheet13"
End If
End If
If CheckBox3.Value = True Then
If PDFsheets = "" Then
PDFsheets = "Sheet2"
Else
PDFsheets = PDFsheets & ",Sheet2"
End If
End If
例如,當選擇了全部3個複選框,MsgBox PDFsheets
顯示結果Sheet11, Sheet13, Sheet2
現在,當我嘗試做多頁面中,選擇我得到運行時錯誤9 - 下標超出範圍。不同的事情,我已經試過包括:
ThisWorkBook.Sheets(PDFsheets).Select
ThisWorkBook.Sheets(Array(PDFsheets)).Select
xPDF() = Split(PDFsheets, ",")
ThisWorkBook.Sheets(xPDF).Select
xPDF() = Split(PDFsheets, ",")
ThisWorkBook.Sheets(Array(xPDF)).Select
xPDF() = Split(PDFsheets, ",")
For i = 0 to Application.CountA(xPDF) - 1
Sheets(xPDF(i)).Select
next i
而且,爲了簡潔起見,我已經嘗試了所有的上述實施例以代替ActiveWorkbook的的ThisWorkbook。另外,我試過重寫我的字符串構建部分,以引用表單名稱而不是上面所有示例的數字。所以,而不是Sheet11, Sheet13, Sheet2
結果是"Sheet11", "Sheet13, "Sheet2"
與工作表中的雙引號。
我已經看在這裏和其他地方顯出這樣的目標,我使用的是選擇線,正是因爲他們有它,我發現了標超出範圍錯誤的其他問題和代碼示例。 ThisWorkBook.Sheets("Sheet11, Sheet13, Sheet2").Select
- - 如果我嘗試輸入字符串值直接在它的工作原理(我也驗證一切都正確拼寫)
附加註意然而,這並不讓我隨時可變。
我仍然得到下標超出範圍的錯誤。另一個想法可能會導致問題是該工作簿有多個窗口。我已經嘗試在選擇行之前爲每個不同的窗口添加一個'Windows(「WindowName」)。Activate',但是無論如何都會得到相同的錯誤。 – SincereApathy
@SincereApathy **請注意,我沒有在表格名稱字符串中包含空格字符** ..................您的標籤名稱可能不會** **以空格字符開頭! –
我已經試過了這兩種方法,目前已刪除空間。 – SincereApathy