我有一個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
我有100多個公式,所以這將是不錯的宏而不糊100代碼段成宏代碼兩個循環:
- 一個循環將採取公式從A1-A90的範圍內一個接一個地粘貼到已創建的文件中
- 第二個循環會提供即將保存文件的文件名(不重要,名稱-1csv到100.csv就足夠了)。
請指點我右邊的loops.Thanks。
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。
有人看到原因,爲什麼公式在保存前不計算?我嘗試了各種公式計算設置 - 自動,手動,手動保存。
我根據您的建議更新了我的帖子 –