2016-06-23 28 views
2

VBAの新機能です。私は2枚のシートを持っています。すなわち、sheet1は入力ディレクトリと出力ディレクトリのパスを持っています。 シート2で私はコードを開始しました。私は、フォルダ内のストアである複数のxlsファイルからデータを読み取ろうとしています。このフォルダパスはsheet1で指定されています。私は、すべてのファイルのヘッダーをすべてのxlsファイルから列のsheet3にコピーしたいと考えています。 私のコードは正常に動作していますが、ファイルパスを直接指定しましたが、別のシートから取得したいと考えています。私を助けてください。以下は私のコードであり、私はsheet1をattchedしています。 Sheet1 DataVBAの別のシートからファイルパスを取得する方法

Public Sub CommandButton1_Click() 
'DECLARE AND SET VARIABLES 
Dim wbk As Workbook 
Dim Filename As String 
Dim Path As String 
Dim mainwb As Workbook 
Dim ws As Worksheet 
Dim search_result As Range 'range search result 
    Dim blank_cell As Long 
Dim wb As Workbook 
Path = "D:\Testing\Data\Input\" 
Filename = Dir(Path & "*.xls") 
'-------------------------------------------- 
'OPEN EXCEL FILES 
Do While Len(Filename) > 0 'IF NEXT FILE EXISTS THEN 
    Set wbk = Workbooks.Open(Path & Filename) 
    'MySheet = Application.Caller.Worksheet.Name 
    'Set sh = MySheet() 
    'Variable = ActiveSheet.Name 
    ' Sheets(Variable).Range("A1:D1").Copy 
    'Sheets("Sheet2").Column(B2).Select.Activate.Paste 
    ' Sheets("Sheet2").Active 
    'Columns("B2").Select 
    Set wbk = ActiveWorkbook 
    Variable = ActiveSheet.Name 
    wbk.Sheets(Variable).Rows(1).EntireRow.Copy 

Workbooks("Tool.xlsm").Activate 
' Workbooks("DFT Tool.xlsm").Sheets("Sheet2").Activate 
'ActiveWorkbook.ActiveSheet 

    'Sheets("Sheet2").Activate 
    'ActiveSheet.Columns("E").Select 
    ' Range("E1").End(xlDown).Offset(1, 0).Select 
    'ActiveSheet.Paste 

Set wb = ActiveWorkbook 
    Set ws = wb.Sheets("Sheet2") 
    For Each cell In ws.Columns(3).Cells 
     If IsEmpty(cell) = True Then cell.Select: Exit For 
    Next cell 
Selection.PasteSpecial Paste:=xlPasteValues, Transpose:=True 

' Selection.PasteSpecial Paste:=xlPasteValues, Transpose:=True 
    wbk.Close savechanges:=False 
    Filename = Dir 
Loop 
End Sub 

アドバンス

答えて

0

のおかげでは

Path = Cells(2,2).value 

を試してみてください。これは、セルB2およびPath変数に格納しの値をとります。 別の可能性:。。

Filename = Dir(Cells(2,2).value & "*.xls") 
+1

Application.Workbooks( "Your_Workbook")ワークシート( "Your_Sheet")細胞(2、2) – Heini

+0

は試みたが、答えを – Amar

+0

おかげで動作していない....今のコードではうまく機能。しかし、問題は、最初のファイルが開かれ、データをsheet2に正常にコピーするときです。オープンされたファイルは自動的に閉じられないので、 "プライバシー警告:この文書にはマクロ、ActivXコントロール、XML拡張パック情報が含まれています......."のようなポップアップが表示され、はいをクリックする必要があります。この方法を避ける方法 – Amar

関連する問題