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

今、私は他の主題のためにそのコマンドボタンをコピーして貼り付けたいのですが。これで、ボタンごとに*でラベル付けした番号を毎回変更することで簡単にこれを行うことができますが、これを行う方法はあるのでしょうか。サブジェクトは、コード全体を何度もコピーして貼り付けるのではなく、これらの変数を変更するだけで済みます。

私はiamがあまり明確ではないことを理解しているので申し訳ありません:(しかしどんな助けでも大歓迎です。

ありがとう。

4

1 に答える 1

3

すべてのコードをボタンクリックイベントに配置する代わりに、変更する要素のパラメーターを受け取る別のサブを用意します。したがって、このように最初の行の代わりに:

Private Sub revision_Click()

これを使って:

Private Sub revision(MyVar As Long)

次に、MyVarを使用して、変更するコードの部分を置き換えます。これには、1つの数値から必要なセル番号を取得するために、少し手直しが必要です。次に、ボタンごとに次のようなコードを使用します。

Private Sub Button1_Click()
  revision 1
End Sub

Private Sub Button2_Click()
  revision 2
End Sub
于 2013-03-25T13:12:31.080 に答える