1

重複の可能性:
Excel マクロ: Excel ファイルを参照し、そのワークシート データを使用する

簡単に言えば、これを実行できるスクリプトを書きたいと思います。現在のExcelファイルには、マクロボタンがあります。ユーザーはボタンをクリックしてファイル (別の Excel) を参照できます。その参照された Excel で、いくつかのワークシートが現在の Excel ワークブックに読み込まれ、データが使用されます。私はこのように書きます

Sub Button1_Click()     ' choose LOAD path

    objFile = Application.GetOpenFilename(fileFilter:="All Files (* . *) , * . * ")   ' browse function

    ...    ' following

    Call main_function
End Sub

私はすでに閲覧機能を書いています。しかし、次の部分をどのように書くのですか?例えば。objFile 内の特定のワークシートのデータが main_function で使用されます。

4

1 に答える 1

2

あなたが何を望んでいるのかははっきりしていませんが(私はあなたの質問の意図を理解しているとは確信していません)、私はこれにひびを入れます。

objFileで開きたいファイルの名前があるとすると、次のようにそのスプレッドシートからデータを抽出できます。選択したブックを開いて、その中のすべてのシートの名前を列Aに書き込みます。ボタンが押される前に開いていたシート。

新しいブックを開くと、そのブックが前面に表示されます。したがって、新しいブックを開く前にアクティブシートを取得せず、新しいブックを開いた後に設定すると、ブックのデータが上書きされることになります。オープンしました。

Sub Button1_Click()
    ' choose LOAD path
    objFile = Application.GetOpenFilename(fileFilter:="All Files (* . *) , * . * ")   ' browse function

    Set curSheet = ActiveSheet
    Set mWorkbook = Workbooks.Open(objFile)
    curSheet.Activate

    Call someFunction(curSheet, mWorkbook)
End Sub


Sub someFunction(targetSheet, srcWorkbook)
    numSheets = srcWorkbook.Sheets.Count
    For i = 1 To numSheets
        targetSheet.Cells(i, 1) = srcWorkbook.Sheets(i).Name
    Next i
End Sub
于 2012-09-12T07:18:58.407 に答える