【发布时间】:2015-10-15 09:55:53
【问题描述】:
我有一个 Excel 宏按钮,单击该按钮后,会以 PDF 格式导出多个工作表。 VBA 下面。
问题在于,在导出 PDF 后,文档最终位于与按钮所在位置不同的工作表上,并且我无法选择工作表中的任何对象或单击功能区中的任何内容,但我可以在工作表,我可以在工作表之间移动。 (Excel 2007)。
我发现的解决方案是返回到按钮所在的工作表并单击该工作表中的任何单元格。在单击任何单元格之前,宏按钮会突出显示 - 文本比页面中的其他宏按钮稍暗,并且按钮内部周围有一条微弱的虚线。当我选择任何单元格时,文本恢复为正常颜色,模糊的虚线消失。然后我可以选择对象并使用功能区中的功能。
这对我使用工作表来说很好,但由于我公司的其他人会使用它,我希望它易于使用。我不想回到按钮所在的工作表来取消选择按钮,但能够立即继续工作。如果需要,我可以分享屏幕截图
Sub PDFExportAllDashboards()
Dim myFile As Variant
Dim strFile As String
Dim ws As Worksheet
On Error GoTo errHandler
Dim arrSheets() As String
Dim sht As Worksheet
Dim i As Integer
Set ws = Worksheets("Dashboard - Focus IT")
i = 0
For Each sht In ActiveWorkbook.Worksheets
If InStr(1, sht.Name, "Dashboard") > 0 Then
ReDim Preserve arrSheets(i)
arrSheets(i) = sht.Name
i = i + 1
End If
Next sht
ThisWorkbook.Sheets(arrSheets).Select
strFile = Replace(Replace(ws.Name, " ", ""), ".", "_") _
& "_" _
& Format(Now(), "yyyy-mm-dd") _
& ".pdf"
strFile = ThisWorkbook.Path & "\" & strFile
myFile = Application.GetSaveAsFilename _
(InitialFileName:=strFile, _
FileFilter:="PDF Files (*.pdf), *.pdf", _
Title:="Save as")
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=myFile, _
OpenAfterPublish:=True
MsgBox "PDF file has been created."
exitHandler:
Exit Sub
errHandler:
MsgBox "Could not create PDF file"
Resume exitHandler
End Sub
【问题讨论】:
-
如果在运行代码的同时打开VBE,代码是否完全运行完毕?如果是,如果在宏末尾添加一个 .Range(Some cell).Select 会怎样?