对VBA完全陌生(并且真正编码)并且今天已经开始,所以我可以想象这个问题有一个相对简单的修复。
我想为多个主题创建一个修订记录器,而且仅针对1个主题的代码工作得很好。这是我得到的。 (我不能放置图片所以这里是链接。)
http://i.imgur.com/Up2Pf8r.png
这里是命令按钮的代码(notr代表修改的次数)
Private Sub revision_Click()
Dim check As String
If revision.Caption = "StartRevision" Then
revision.Caption = "EndRevision"
Else
revision.Caption = "StartRevision"
End If
Dim column As Integer
Dim notr As Integer
notr = Cells(*2*, 5).Value
column = notr + 6
If revision.Caption = "StartRevision" Then
Cells(*3*, column).Value = Now
Cells(*3*, column).NumberFormat = "dd/mm/yyyy hh:mm:ss"
Cells(*4*, column).Value = Abs((Cells(2, column)) - (Cells(3, column)))
Cells(*4*, column).NumberFormat = "hh:mm:ss"
Else
Cells(*2*, column).Value = Now
Cells(*2*, column).NumberFormat = "dd/mm/yyyy hh:mm:ss"
End If
If revision.Caption = "StartRevision" Then
notr = notr + 1
Cells(*2*, 5).Value = notr
End If
End Sub
现在虽然我希望复制并粘贴其他主题的命令按钮。现在我可以通过每次为每个按钮更改我用*标记的数字来轻松完成此操作,但我想知道是否有一种方法可以做到这一点,但是制作那些*数字变量,只需要一次,然后为每个主题只需要更改这些变量,而不必多次复制和粘贴整个代码。
据我所知,我不是很清楚对不起:(但任何帮助都会非常感激。
感谢。
答案 0 :(得分:3)
而不是将所有代码放在按钮单击事件上,而是有一个单独的子元素,它接受您想要更改的元素的参数。因此,而不是第一行:
Private Sub revision_Click()
使用此:
Private Sub revision(MyVar As Long)
然后使用MyVar替换要更改的代码部分,这需要进行一些修改以从一个数字中获取所需的单元格编号。然后为每个按钮使用一些代码:
Private Sub Button1_Click()
revision 1
End Sub
Private Sub Button2_Click()
revision 2
End Sub