Excel VBA脚本创建新工作表并相应编辑公式
这可能看起来很琐碎,但我无法得到任何提示,我需要做几周 我有为我创建模板的脚本。它是每日报告,因此它确实为每月的每一天创建相同的表。但是,我也需要它来更新此模板中的公式 我有两份文件。让我们称之为源和结果。SOURCE在2月的每一天都有28份工作表。A1中有一些数据。我有一个脚本,可以根据模板为每个月的每一天创建结果 但是,每个工作表每天都引用源中的相同位置,因为它只是复制带有公式的表。所以我最终得到了28张工作表的结果,其中每天的公式都引用了SOURCE 2月1日的工作表 我需要每个工作表都指向各自的日期。所以2月1日的结果工作表指的是来源的2月1日。结果的2月2日是指来源的2月2日。。等等 有人能帮忙吗 这是密码Excel VBA脚本创建新工作表并相应编辑公式,vba,excel,Vba,Excel,这可能看起来很琐碎,但我无法得到任何提示,我需要做几周 我有为我创建模板的脚本。它是每日报告,因此它确实为每月的每一天创建相同的表。但是,我也需要它来更新此模板中的公式 我有两份文件。让我们称之为源和结果。SOURCE在2月的每一天都有28份工作表。A1中有一些数据。我有一个脚本,可以根据模板为每个月的每一天创建结果 但是,每个工作表每天都引用源中的相同位置,因为它只是复制带有公式的表。所以我最终得到了28张工作表的结果,其中每天的公式都引用了SOURCE 2月1日的工作表 我需要每个工作表都指
Private Sub Workbook_Open()
Dim odpoved As Integer
odpoved = MsgBox("Tento program ti pripravi prazdnu predlohu na XXX." & Chr(13) & "Pre pokracovanie stlac OK, pre ukoncenie programu alebo editaciu" & Chr(13) & "predlohy stlac Cancel!", vbOKCancel, "Welcome!")
Select Case odpoved
Case vbOK
If odpoved = vbOK Then
Call test
End If
Case vbCancel
If odpoved = vbCancel Then
MsgBox ("Proces ukonceny uzivatelom")
GoTo Line2
End If
End Select
Line2:
End Sub
Sub test()
'
' Open and work Macro
'
Dim selected_month As Long
Dim day_count As Integer
Dim day_loop As Integer
Dim najdi_cestu As String
najdi_cestu = ThisWorkbook.Path & "\"
Application.ScreenUpdating = True
'Input Box to get the month number user wants to work with
Line1:
selected_month = 13
While (selected_month < 1) Or (selected_month > 12)
selected_month = Val(InputBox("Zadaj poradove cislo mesiaca"))
If selected_month = 0 Then Exit Sub
Wend
'Script above will loop until 0 or 1 - 12 are inserted
'
'Select Case tells how many days there are in the selected month
Select Case selected_month
Case 4, 6, 9, 11
day_count = 30
Case 1, 3, 5, 7, 8, 10, 12
day_count = 31
Case Else
day_count = 28
End Select
'
For day_loop = day_count To 1 Step -1
Sheets("Template").Copy Before:=Sheets(2)
ActiveSheet.Name = day_loop & "." & Left(MonthName(selected_month), 3)
Next day_loop
Application.DisplayAlerts = False
Sheets("Template").Delete
' Auto pathfinder
ActiveWorkbook.SaveAs Filename:=najdi_cestu & "Zmenový priebeh výroby " & Format(MonthName(selected_month)) & ".xlsx", FileFormat:= _
xlOpenXMLWorkbook
MsgBox ("Tvoja predloha na mesiac " & Format(MonthName(selected_month)) & " bola ulozena do: " & najdi_cestu)
' manualny save
'ActiveWorkbook.SaveAs Filename:="C:\Users\pz595v\Desktop\Finalna verzia\" & Format(MonthName(selected_month)) & ".xlsx", FileFormat:= _
' xlOpenXMLWorkbook
Line3:
End Sub
要回答post Excel VBA脚本的标题以创建新工作表并相应地编辑公式,请使用以下方法创建新工作表并编辑其公式:
'creates a new sheet
Dim wrkSheet As Worksheet
set wrkSheet = Worksheets.Add("Worksheet Name")
'changes forumula
wrkSheet.cells(1, 1) = "=B1+C1"
不是答案而是这样;选择案例与编写以下内容时的If-so类似:
Select Case odpoved
Case vbOK
If odpoved = vbOK Then
Call test
End If
Case vbCancel
If odpoved = vbCancel Then
MsgBox ("Proces ukonceny uzivatelom")
GoTo Line2
End If
End Select
你应该这样写:
Select Case odpoved
Case vbOK 'this line checks if odpoved = vbOK
Call test
Case vbCancel 'this line checks if odpoved = vbCancel
MsgBox ("Proces ukonceny uzivatelom")
GoTo Line2
End Select
由于所选案例已经检查了条件odpoved。请发布您的代码。更好。需要改变的公式是什么?该问题可以在For day_循环部分中解决。在ActiveSheet.Name之后,类似ActiveSheet.RangeA1.Formula=blahdiblah的内容(其中blahdiblah是动态生成的公式字符串)可以解决此问题:@BK201,blahdiblah返回的数据类型是什么;这是需要更改的公式='C:\Users\Desktop[final.xls]1.febr'$33美元。或者实际上有8个。。同样的,只是指不同的牢房有没有关于这个的提示?我已经有好几天没有在那里了,现在我发现这个问题仍然没有答案。您必须设置wrkSheet=Worksheets.AddWorksheet Name,因为工作表类型引用对象类型,您必须设置对象。谢谢。我需要回家在我的个人笔记本电脑上试一试。。我会让你知道结果的。