1

对 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

现在虽然我希望为其他主题复制并粘贴该命令按钮。现在我可以通过更改每个按钮每次都标有 * 的数字来轻松做到这一点,但我想知道是否有办法做到这一点,但使这些 * 数字变量并且只为每个按钮设置一次该代码主题只需更改这些变量,而不必多次复制和粘贴整个代码。

我知道我不是很清楚,所以很抱歉:(但任何帮助将不胜感激。

谢谢。

4

1 回答 1

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
于 2013-03-25T13:12:31.080 回答