次のようなExcelマクロ(自分自身が記録されています)があります:列A(A1〜A90)の に異なる数式があります。数式計算は手動に設定されています。新しく作成されたファイルの A1 セルの範囲とファイル名から値を取得するためのExcelマクロループ
- コピー式A1に新しいファイル
- ペースト式を作成
- はformel
- ファイル
マクロを保存算出しますコード:
Sub Makro1()
'
' Makro1 Makro
'
Windows("macrotest.xlsx").Activate
Range("A1").Select
Selection.Copy
Workbooks.Add
ActiveSheet.Paste
Application.CutCopyMode = False
Calculate
ActiveWorkbook.SaveAs Filename:= _
"Z:\Mappe1.csv", FileFormat:=xlCSV, _
CreateBackup:=False
Windows("macrotest.xlsx").Activate
Range("A2").Select
Selection.Copy
Workbooks.Add
ActiveSheet.Paste
Application.CutCopyMode = False
Calculate
ActiveWorkbook.SaveAs Filename:= _
"Z:\Mappe2.csv", FileFormat:=xlCSV, _
CreateBackup:=False
Windows("macrotest.xlsx").Activate
Range("A3").Select
Selection.Copy
Workbooks.Add
ActiveSheet.Paste
Application.CutCopyMode = False
Calculate
ActiveWorkbook.SaveAs Filename:= _
"Z:\Mappe3.csv", FileFormat:=xlCSV, _
CreateBackup:=False
End Sub
マクロコードに2つのマクロのループの代わりに、ペースト100のコードスニペットを持っていいだろうので、私は、100式、より多くを持っている:
- 1ループは、範囲A1-A90から数式を取ります作成されたファイルに貼り付けるために1つずつ作成する
- 2番目のループは、ファイルの保存時に次のファイル名を与えます(重要ではありません - 1.csvから100.csvで十分です)。
右ループを指してください。ありがとうございます。
UPD: 私はこのマクロを構築ティム・エドワーズからの助言に基づいて:
Sub MyMacro()
Dim i As Integer, myname As String
myname = ThisWorkbook.Name
For i = 1 To 90
Windows(myname).Activate
Range("A" & i).Select
Selection.Copy
Workbooks.Add
ActiveSheet.Paste
Application.CutCopyMode = False
Calculate
ActiveSheet.Calculate
ActiveWorkbook.SaveAs Filename:= _
"Z:\file" & i & ".csv", FileFormat:=xlCSV, _
CreateBackup:=False
ActiveWorkbook.Close True
Next i
End Sub
しかし上の問題が保存されたファイルで式はを計算されていないこと、である - 私が取得貼り付けられた式だけをa1に追加します。
誰かが理由を見ていますが、保存する前に数式が計算されていないのはなぜですか?私は数式計算のすべての種類の設定を試みた - 自動、マニュアル、保存のマニュアル。
あなたのアドバイスに基づいて自分の投稿を更新しました –