VBA bagaimana cara saya memiliki kode yang sama pada tombol perintah tetapi dengan variabel yang diubah

benar-benar baru di VBA (dan coding sebenarnya) dan sudah dimulai hari ini jadi saya bisa membayangkan masalah ini memiliki perbaikan yang relatif sederhana.

Saya ingin membuat pencatat revisi untuk beberapa mata pelajaran dan kode hanya untuk 1 mata pelajaran berfungsi dengan baik. Inilah yang saya dapatkan. (Saya tidak dapat menempatkan gambar jadi ini tautannya.)

http://i.imgur.com/Up2Pf8r.png

berikut adalah kode untuk tombol perintah (notr adalah singkatan dari berapa kali direvisi)

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

sekarang saya ingin menyalin dan menempelkan tombol perintah itu untuk subjek lainnya. Sekarang saya dapat melakukan ini dengan mudah dengan mengubah angka yang telah saya beri label * setiap kali untuk setiap tombol tetapi saya bertanya-tanya apakah ada cara untuk melakukan ini tetapi membuat variabel * angka tersebut dan hanya memiliki kode itu sekali dan kemudian untuk masing-masing subjek hanya perlu mengubah variabel tersebut daripada harus menyalin dan menempelkan seluruh kode berkali-kali.

Saya mengerti bahwa saya tidak begitu jelas, jadi maaf :( tetapi bantuan apa pun akan sangat kami hargai.

terima kasih.


vba
person Hugh Kinnear    schedule 25.03.2013    source sumber
comment
tidak, saya bisa mengulangi kode untuk setiap tombol, itu berfungsi dengan baik. Saya hanya bertanya apakah ada cara untuk melakukannya sehingga saya tidak perlu mengulangi kode dan dapat membuat variabel * tersebut dan kemudian untuk setiap tombol hanya memiliki daftar nomor untuk subjek tertentu.   -  person Hugh Kinnear    schedule 25.03.2013


Jawaban (1)


Daripada meletakkan semua kode Anda pada acara klik tombol, miliki sub terpisah yang mengambil parameter untuk elemen yang ingin Anda ubah. Jadi, bukannya baris pertama seperti ini:

Private Sub revision_Click()

Gunakan ini:

Private Sub revision(MyVar As Long)

Kemudian ganti bagian kode yang ingin Anda ubah dengan menggunakan MyVar, ini akan memerlukan sedikit pengerjaan ulang untuk mendapatkan nomor sel yang Anda inginkan dari satu nomor tersebut. Kemudian untuk setiap tombol gunakan beberapa kode seperti ini:

Private Sub Button1_Click()
  revision 1
End Sub

Private Sub Button2_Click()
  revision 2
End Sub
person Dave Sexton    schedule 25.03.2013
comment
terima kasih banyak, saya tidak berpikir ada orang yang akan mengerti apa yang saya bicarakan dengan postingan saya karena sangat tidak jelas XD. inilah yang saya inginkan. - person Hugh Kinnear; 25.03.2013