簡體   English   中英

嘗試打開和關閉工作簿

[英]Trying to open and close workbooks

從復制文件中的數據並粘貼到合並文件中的文件后,我想打開和關閉文件。 我希望VBA代碼和合並文件中的模塊在運行代碼后保持打開狀態。 希望這很清楚,否則我可以嘗試更具體。

文件上也有一個密碼,此示例的密碼是Marrin18,我無法使其打開,因此我沒有編碼使用密碼打開所需要的內容。

Sub consolDirectors()

ExcelApplication.Open.Workbooks ("2018 Budget PL_HC_CAP - MarrinV1.xlsx")
Workbooks("2018 Budget PL_HC_CAP - MarrinV1").Worksheets("Summary").Range("A1:AH227").Copy
Workbooks("2018 Budget PL_HC_CAP - Total 802").Worksheets("Marrin").Range("A1:AH227").PasteSpecial xlPasteValues
Workbooks("2018 Budget PL_HC_CAP - MarrinV1").Close

End Sub

您無需打開工作簿即可閱讀內容。 但是,您需要逐個單元地寫入內容,所以這是不利的一面。 如果您可以使用5秒的宏,則可以:

Option Explicit

Sub Fd()
    Dim FilePath$
    Dim i As Long, j As Long
    Const FileName$ = "2018 Budget PL_HC_CAP - MarrinV1.xlsx"
    Const SheetName$ = "Summary"
    FilePath = "C:\mypath\" ' path to feeder file 2018 Budget PL_HC_CAP - MarrinV1.xlsx

    DoEvents
    Application.ScreenUpdating = False
    If Dir(FilePath & FileName) = Empty Then
        MsgBox "The file " & FileName & " was not found", , "File Doesn't Exist"
        Exit Sub
    End If
    For i = 1 To 227
        For j = 1 To 34
            Cells(i, j) = GetData(FilePath, FileName, SheetName, Cells(i, j))
        Next j
    Next i
    ActiveWindow.DisplayZeros = False
End Sub

Private Function GetData(Path, File, Sheet, Rng)
    Dim Data$
    Data = "'" & Path & "[" & File & "]" & Sheet & "'!" & Rng.Address(, , xlR1C1)
    GetData = ExecuteExcel4Macro(Data)
End Function
Sub consolDirectors()
    Const FPATH As String = "T:\Planning\FY Budget\2018 Budget\" & _ 
                            "Director Templates\With updates\"
    Const RNG_COPY As String = "A1:AH227"
    Dim wb As Workbook

    'you should use the full path here....
    Set wb = Workbooks.Open( _
           FileName:= FPATH & "2018 Budget PL_HC_CAP - MarrinV1.xlsx", _
           Password:= "passHere" )

    'add the file extension here - I'm guessing "xlsx" ?
    Workbooks("2018 Budget PL_HC_CAP - Total 802.xlsx" _
        ).Worksheets("Marrin").Range(RNG_COPY).Value = 
        wb.Worksheets("Summary").Range(RNG_COPY).Value

    'If this file is the one with the macro you can use ThisWorkbook instead
    'ThisWorkbook.Worksheets("Marrin").Range(RNG_COPY).Value = _
    '         wb.Worksheets("Summary").Range(RNG_COPY).Value

    wb.Close False

End Sub

@tim williams @Tehscript這是我最后使用的代碼,不是很先進,但是讓您

Sub FeedFiles()
    Workbooks.Open Filename:= "T:\Planning\FY Budget\2018 Budget\Director Templates\With updates\2018 Budget PL_HC_CAP - MarrinV1.xlsx", Password:="Marrin18"
    Workbooks("2018 Budget PL_HC_CAP - MarrinV1.xlsx").Worksheets("Summary").Activate
    Workbooks("2018 Budget PL_HC_CAP - MarrinV1.xlsx").Worksheets("Summary").Range("A1:AH227").Copy
    Workbooks("2018 Budget PL_HC_CAP - Total 802.xlsm").Worksheets("Marrin").Range("A1:AH227").PasteSpecial xlPasteValues
    Workbooks("2018 Budget PL_HC_CAP - MarrinV1.xlsx").Close 
End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM