2017-08-04 8 views
0

フィーダファイルを開き、そこからデータをコピーし、統合ファイルのファイルに貼り付けた後に、フィーダファイルを開いて閉じたいと思います。私はコードを実行した後も開いたままになる、統合されたファイルに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 
+0

あなたの文章をappreicate意味を成さない。物事を複雑にしないでください。単純化してみてください。あなたの質問に集中して尋ねるだけです。 – Tehscript

+0

私は言語を更新して、このことがより明確になるようにしましたか? –

+0

また、データが保存されているワークブックを閉じた後、フィーダファイルを開いたり閉じたりしますか?これはあなたの質問ですか? – Tehscript

答えて

0
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 
+0

私のファイルは共有ドライブにあり、ファイルパスはT:\ Planning \ FY予算\ 2018 Budget \ Directorテンプレート\更新ありです。私はコードをこのサブconsolDireors() Dim wb wb = Workbooks.Open(T:\ Planning \ FY予算\ 2018 Budget \ Directorテンプレート\ 2025更新プログラムを使用して設定しましたが、実行時エラー構文が表示されます。私がコードしていることに特有ですが、コードに関連するあなたのコメントを理解できません。私は非常に新しいです –

+0

"実行時エラー構文を取得します" - 何がエラー*メッセージ*? –

0

あなたは内容を読み取るために、ブックを開く必要はありません。しかし、コンテンツセルをセルで書き込む必要があるので、これは欠点です。あなたはここで5秒マクロでOKであれば、それは次のようになります。

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 
+0

エラーメッセージが表示されますコンパイルエラー:現在のスコープで宣言が重複しています –

+0

@JS Bach "Feed"というサブがあるのでしょうか?サブの名前を "Fd"に変更しました。 – Tehscript

0

@timウィリアムズ@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 
関連する問題