我写如果用户选择一个复选框,包括该板在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