0

これが私が思いついたものです。コンパイル エラーが発生します。

必要なオブジェクト。

Dim strName As String
Set wbk = "C:\Users\I53014\Desktop\Import_Creator.xlsm"
strName = wbk.Sheet1.Range("B2")
ActiveWorkbook.SaveAs strName

「Import_Creator.xlsm」シート 1 セル b2 にあるテキストを取得し、それを使用して別のワークブックをその名前で保存する必要があります。

4

1 に答える 1

2

wbk が Workbook オブジェクトであると仮定すると、

Set wbk = Workbooks.Open("C:\Users\I53014\Desktop\Import_Creator.xlsm")

現在、このオブジェクトを文字列に設定しようとしています。

Workbooksコレクションは開いているワークブックのみを参照するため、ブックも (一時的であっても)開く必要があります。

可能であれば、別のブックで B2 を参照するリンクされた数式を用意してください。これにより、ブックを開いたり閉じたりする手間が省けます。

追加された場合、ワークブックが開いている場合は使用できます

Set wbk = Workbooks("Import_Creator.xlsm")

この本に現在実行中のコードが含まれている場合:

Set wbk = ThisWorkbook

興味深いことに (読んでいる人なら誰でも)、ワークブックを開いたり閉じたりせずにワークブックから値を取得することができます。

Range("A1").Formula = "='F:\Documents and Settings\student\My Documents\[AndysData7.xlsx]Staff List'!$D$6"
MsgBox Range("A1").Value
Range("A1").Clear

セルを使用して数式を入力しなくても、この値を取得することもできます。

Debug.Print ExecuteExcel4Macro("'F:\Documents and Settings\student\My Documents\[AndysData7.xlsx]Staff List'!R6C4")

(同僚のハンスに感謝)

于 2013-07-26T18:06:27.713 に答える