繁体   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