2015-10-05 92 views
-1

所以我有一个VBA项目,我想要做的是打开一个现有的文件(待定数据输入)形式我的用户界面。添加从我的用户表单收集的数据,打开添加新数据,然后保存并保存PDF。这就是我今天来了,我不希望看到Excel作为双方的Excel应该隐藏在这一切我想看到的是我的形式打开另一个现有的Excel文件 - 添加数据然后重新保存然后saveas PDF

Sub OpenDocument4() 
Dim wsh As Worksheet 
Dim wb As Workbook 
Dim wb1 As Workbook 
Set wb1 = ActiveWorkbook 
Dim i As Long 
Dim lngEndRowInv As Long 
Dim FileName1, FileName2 As String 
Dim var1 
Dim var2 
Dim var3 
var1 = frmsetup.tbIssuesRear60.Caption 
var2 = frmsetup.tbActionsRear60.Caption 
var3 = frmsetup.tbOwnerRear60.Caption 
Application.Visible = False 
Application.ScreenUpdating = False 
FileName2 = "C:\MiltonAuditAppsCenter\SEAT AUDIT\TEMP DOCUMENTS\" & "SEQ-" &   frmsetup.lblsequence.Caption & " " & frmsetup.lbldate.Caption & ".xlsm" 
FileName1 = "SEQ-" & frmsetup.lblsequence.Caption & " " & frmsetup.lbldate.Caption & ".pdf" 

Set wb = Workbooks.Open(FileName2) 
Set wsh = wb.Worksheets("ACTIONS") 
Worksheets("ACTIONS").Range("E20").Value = var1 
Worksheets("ACTIONS").Range("E22").Value = var2 
Worksheets("ACTIONS").Range("J21").Value = var3 
Application.Visible = False 
Application.ScreenUpdating = False 
With Sheets(Array("END RESULTS", "DRIVER SEAT", "PASSENGER SEAT", "40% SEAT", "60% SEAT", "RSC SEAT", "ACTIONS")).Select 
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _ 
    FileName:="H:\APPLICATIONS\SEAT AUDIT\QUERY RESULTS\SEAT AUDIT - PDF\" & FileName1, _ 
    Quality:=xlQualityStandard, _ 
    IncludeDocProperties:=True, IgnorePrintAreas:=False,  OpenAfterPublish:=False 
End With 
wb.Close savechanges:=False 

End Sub 

回答

1

,这看起来像它应该工作,但它可能不会伤害到明确地处理你的Workbook对象,同样,因为你已经将Worksheets("ACTIONS")指定为wsh变量,所以你应该使用它来代替Worksheets("ACTIONS").Range(...).Value指定的硬编码。

Sub OpenDocument1() 
Dim wsh As Worksheet 
Dim wb as Workbook  '## The workbook you want to open 
Dim i As Long 
Dim lngEndRowInv As Long 
Dim FileName As String 
Application.Visible = False 
Application.ScreenUpdating = False 
FileName = "C:\MiltonAuditAppsCenter\SEAT AUDIT\TEMP DOCUMENTS\" & "SEQ-" & frmsetup.lblsequence.Caption & " " & frmsetup.lbldate.Caption & ".xlsm" 
Set wb = Workbooks.Open(FileName) 
Set wsh = wb.Worksheets("ACTIONS") 
wsh.Range("E20").Value = frmReviewPDFPending.tbIssuesRear60.Text 
wsh.Range("E22").Value = frmReviewPDFPending.tbActionsRear60.Text 
wsh.Range("J21").Value = frmReviewPDFPending.tbOwnerRear60.Text 
wb.Sheets(Array("END RESULTS", "DRIVER SEAT", "PASSENGER SEAT", "40% SEAT", "60% SEAT", "RSC SEAT", "ACTIONS")).ExportAsFixedFormat Type:=xlTypePDF, FileName:= _ 
    "H:\APPLICATIONS\SEAT AUDIT\QUERY RESULTS\SEAT AUDIT - PDF\" & FileName1, Quality:=xlQualityStandard, _ 
    IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _ 
    False 
wb.Close savechanges:=True 
Application.Visible = True 
Application.ScreenUpdating = True 
End Sub 

注:如果您遇到了麻烦ExportAsFixedFormat,只是恢复到原来的方法:

With Sheets(Array("END RESULTS", "DRIVER SEAT", "PASSENGER SEAT", "40% SEAT", "60% SEAT", "RSC SEAT", "ACTIONS")).Select 
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _ 
     FileName:= "H:\APPLICATIONS\SEAT AUDIT\QUERY RESULTS\SEAT AUDIT - PDF\" & FileName1, _ 
     Quality:=xlQualityStandard, _ 
     IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= False 
End With 
+0

我仍然得到在wsh.range错误任何想法 – INOH

+1

如果这将是有益的可以指出你已经做了什么来调试......哪一行?什么是错误?你想要分配什么价值? –

+0

对不起,只是重新检查我的结束,看看我是否错过了一些东西。当我得到错误和调试itop,并突出显示wb.sheets一路到假(所以整个savpdf部分) – INOH

相关问题