我正在编辑VBA中的现有模板。此模板将“原始数据”表中的数据组织为“日”,“晚”和“夜”表。我想创建一个名为“Weekend”的工作表,如果日期不是工作日,我将复制“原始数据”中的数据(我知道该怎么做)。
但是,通过此模板运行的数据量很大,因此要避免创建周末表,用户不需要/想要一个我希望放入代码段的代码段,如果勾选了勾选框(是),将创建一个名为“Weekend”的工作表(在工作簿中,但在现有工作表之间 - 即在一个名为“Night”和“Graph - All Data”的工作表之间),当它未被攻击时(False),此工作表将不会存在。
我想过让这张纸一直存在,并且当勾选框没有被隐藏时隐藏它,但这意味着数据仍会堆积在其中,为了提高效率,我宁愿没有就是这样。
以下是我试图修改的代码
Sub ToggleWindDirection()
Dim i As Long
Application.ScreenUpdating = False
If sheetArr(1) Is Nothing And LastNDRow = Empty Then
DefineLists
End If
Sheets("Raw Data").Unprotect Password:="2260"
For Each sht In sheetArr
sht.Unprotect Password:="2260"
Next
Set chtAllData = ActiveWorkbook.Charts("Graph - All Data")
With Sheets("Raw Data")
If .Range("O15").Value = True Then
'Wind direction is being used
.Range("C17:G17").Font.ColorIndex = xlAutomatic
.Range("D17").Font.ColorIndex = 9
.Range("G17").Font.ColorIndex = 9
.Range("D17").Locked = False
.Range("G17").Locked = False
.Range("F" & FirstNDRow & ":F10000").Interior.Pattern = xlNone
.Range("F" & FirstNDRow & ":F10000").Interior.PatternTintAndShade = 0
.Range("F" & FirstNDRow & ":F10000").Font.ColorIndex = xlAutomatic
Else
'Not using wind direction
.Range("C17:G17").Font.ColorIndex = 16
.Range("D17").Locked = True
.Range("G17").Locked = True
.Range("F" & FirstNDRow & ":F10000").Interior.Pattern = xlSolid
.Range("F" & FirstNDRow & ":F10000").Interior.TintAndShade = -4.99893185216834E-02
.Range("F" & FirstNDRow & ":F10000").Font.ColorIndex = 16
End If
'Addition by lewisthegruffalo 2016
Dim ws As Worksheet
If .Range("O21").Value = True Then
'create the weekend sheet
Set ws = Worksheets.Add(After:=Worksheets("Night"))
ws.Name = "Weekend"
Else
'No Weekend needed
Worksheets("Weekend").Delete
End If
End With
Sheets("Raw Data").Activate
Application.ScreenUpdating = True
End Sub
任何帮助都会大大加强。
亲切的问候,
lewisthegruffalo
答案 0 :(得分:0)
如果你想使用sheets.add创建一个新的工作表,那么你可以利用它中的参数来告诉它放在哪里,the msdn page在底部有一个很好的例子。
答案 1 :(得分:0)
到目前为止你有什么?你想在哪里打电话?勾选什么复选框?请提供一些代码。
一般答案是添加新工作表:
Dim ws As Worksheet
If Something Then
Set ws = Worksheets.Add(Before:=Worksheets("Graph - All Data"))
ws.Name = "Weekend"
'do anything you want with the ws object
End if