我正在使用此功能清除内容
Sub ClearData()
Range("K2,J3,B18:B38,H18:H38,I18:I38,J18:J38,F44").Value = ""
End Sub
另一个函数用于复制最后一个具有相同内容的工作表并给予命名
Public Sub CopySheetAndRename()
Dim newName As String
On Error Resume Next
newName = InputBox("Enter the name for the copied worksheet")
If newName <> "" Then
ActiveSheet.Copy After:=Worksheets(Sheets.Count)
On Error Resume Next
ActiveSheet.Name = newName
End If
End Sub
但我需要的是,当我按下按钮,以创建新的复制工作表,我也什么清除一些单元格在新的工作表。现在我有两个按钮,我只想一个按钮,必须做什么,其他2个正在做的。
我是新手,还在学习。
我试着合并代码,但没有成功。
谢谢大家的帮助。现在如果有人知道如何摆脱下一个文本框每次我做一个新的工作表,请告诉。
2条答案
按热度按时间e4eetjau1#
复制工作表
ax6ht2ek2#
您可以从宏中调用另一个宏。在
CopySheetAndRename
宏中,如果编写Call ClearData
或甚至只编写ClearData
(因为VBA可以自己计算出Call
部分),VBA将在CopySheetAndRename
宏中运行ClearData
。我对你的代码的建议是不要使用
ActiveSheet
。随着你的代码变得越来越复杂,特别是当你在执行过程中创建或更改工作表时,ActiveSheet
将很难跟踪,并可能最终给你带来问题。根据我的经验,一些东西最终会在错误的工作表上运行并损坏所有数据。在
ClearData
中添加一个Worksheet
参数,这样你就可以确定你没有在错误的工作表上运行它。并且在ActiveSheet
发生任何变化之前,尽快将新的工作表保存为变量。