本当にこれは不思議です。何が起こっているのか説明してみましょう。エクセルファイルのマクロを呼んでいるマクロを言葉で書いた
Set excel = CreateObject("excel.application")
excel.Visible = True
excel.workbooks.Open FileName:=tablePath
IDcolumn = excel.Application.Run("main", generatedExelPath)
マクロという単語から呼び出される「メイン」関数は、呼び出されたExcelファイルから特定のデータをコピーすることによって「単に」新しいExcelファイルを生成することです。
つまり、1つの単語と2つのExcelドキュメントを取得しました。excel1の一部のシートをexcel2にコピーする必要があります。
したがって、私は使用します:
For i = 0 To UBound(copySheets)
Windows(srcWinName).Activate
Sheets(copySheets(i)).Activate
Set AcSh = ActiveSheet
Windows(destWinName).Activate
If copySheets(i) = "config" Then
AcSh.Copy Before:=Sheets(1)
Else
AcSh.Copy After:=ActiveSheet
End If
Next i
ここで、copySheetsには、コピーする必要のあるシートが含まれています。ただし、コピーコマンドはエラーをスローします。「ソースから宛先にコピーできないため、宛先の行と列がソースファイルよりも少ない」のようなもの
Atm excel1は、このエラーが発生しなかっxlsm
たファイルであるためです。xls
excel2を追加するこの行がprobであるかどうか疑問に思います
Workbooks.Add Template:="Workbook"
別のテンプレートを使用する必要があるかもしれませんが、どれかわかりません。
空のxlsm
ファイルを作成した場合は、それを保存してxlsm
から、エラーが発生しないようにする前に、コマンドの代わりにこの空のファイルを開いてください。誰かが私を助けてくれることを願っています。
ああ、私が言及しなければならないことの1つは、Wordマクロから上記のようにExcelマクロを実行するとエラーが発生しますが、Wordを閉じて手動でExcelマクロを実行すると機能します。
編集:それは動作します
アランが言ったように、私はちょうどエクセルオプションを変更しました。ここに彼の投稿。
ああ、なぜそれが起こっているのか知っています。デフォルトのExcel形式を変更する必要があります:Orb>Excelオプション>|保存| >ファイルを「Excelワークブック(.xlsx)」の形式で保存します。現在の設定はExcel97-2003ワークブック(.xls)になります。–アラン8月29日12:09