克隆工作表,命名它,清除单元格-Excel VBA
我不太擅长VBA,但我正在努力实现以下目标:克隆工作表,命名它,清除单元格-Excel VBA,vba,excel,Vba,Excel,我不太擅长VBA,但我正在努力实现以下目标: 我有一张表格(第50周),上面有一张表格,上面有一些信息 我想要一个按钮(宏),创建一个新的工作表(第51周),它有 在同一个表中,只应清除内容(特定 单元格范围) 表中的第一列应基于前一周的公式。如何使其适应每一周的工作 如何根据前一周的情况复制工作表并确定名称?如何在同一宏中清除新工作表的某些单元格 到目前为止,我只有: Sub New_Week() Worksheets(ActiveSheet.Name).Copy After:=W
- 我有一张表格(第50周),上面有一张表格,上面有一些信息李>
- 我想要一个按钮(宏),创建一个新的工作表(第51周),它有 在同一个表中,只应清除内容(特定 单元格范围)
- 表中的第一列应基于前一周的公式。如何使其适应每一周的工作
Sub New_Week()
Worksheets(ActiveSheet.Name).Copy After:=Worksheets(ActiveSheet.Name)
End Sub
这段代码不考虑年份的变化,因此如果您在工作簿中已经有52周的时间运行它,它将很高兴地创建第53周、第54周等等 您不需要选择当前周,代码将根据命名为
week xx
的工作表搜索最高周数它清除D2:G2和H5:K8范围。 工作表上任何关于
“第xx周”的参考
更新到前一周,更新方式与按键盘上的Ctrl+H
相同
Sub CreateNewSheet()
Dim wrkSht As Worksheet
Dim lWkNum As Long
Dim lCurNum As Long
Dim sht_LastWeek As Worksheet
Dim sht_NewWeek As Worksheet
'Find previous week and set reference to it.
For Each wrkSht In ThisWorkbook.Worksheets
If IsNumeric(Replace(wrkSht.Name, "Week ", "")) Then
lCurNum = CLng(Replace(wrkSht.Name, "Week ", ""))
If lCurNum > lWkNum Then lWkNum = lCurNum
End If
Next wrkSht
Set sht_LastWeek = ThisWorkbook.Worksheets("Week " & lWkNum)
'Create new sheet, set reference to it and rename.
sht_LastWeek.Copy After:=Sheets(sht_LastWeek.Index)
Set sht_NewWeek = Sheets(sht_LastWeek.Index + 1)
sht_NewWeek.Name = "Week " & lCurNum + 1
'Clear the cells and relink formula to previous sheet.
With sht_NewWeek
.Range("D2:G2,H5:K8").ClearContents
.Cells.Replace What:="'Week " & lCurNum - 1 & "'!", _
Replacement:="'Week " & lCurNum & "'!", _
LookAt:=xlPart
End With
End Sub
您希望清除的内容范围是什么?