Board logo

標題: [發問] VB程式碼寫法簡化 - 指定範圍輸入 [打印本頁]

作者: liebe    時間: 2017-8-4 15:04     標題: VB程式碼寫法簡化 - 指定範圍輸入

各位大大們好!
目前正以VB userform 來輸入指定範圍的數值,想請教大大們以下程式碼是否能加以簡化呢?
對VB還不是很熟,還請大大們教教我!
感謝大家!

程式碼:
Private Sub CommandButton2_Click()
Range("B11").Value = Val(TextBox1)
Range("C11").Value = Val(TextBox7)
Range("D11").Value = Val(TextBox13)
Range("E11").Value = Val(TextBox19)
Range("B12").Value = Val(TextBox2)
Range("C12").Value = Val(TextBox8)
Range("D12").Value = Val(TextBox14)
Range("E12").Value = Val(TextBox20)
Range("B13").Value = Val(TextBox3)
Range("C13").Value = Val(TextBox9)
Range("D13").Value = Val(TextBox15)
Range("E13").Value = Val(TextBox21)
Range("B14").Value = Val(TextBox25)
Range("C14").Value = Val(TextBox26)
Range("D14").Value = Val(TextBox27)
Range("E14").Value = Val(TextBox28)
Range("B15").Value = Val(TextBox4)
Range("C15").Value = Val(TextBox10)
Range("D15").Value = Val(TextBox16)
Range("E15").Value = Val(TextBox22)
Range("B16").Value = Val(TextBox5)
Range("C16").Value = Val(TextBox11)
Range("D16").Value = Val(TextBox17)
Range("E16").Value = Val(TextBox23)
Range("B17").Value = Val(TextBox6)
Range("C17").Value = Val(TextBox12)
Range("D17").Value = Val(TextBox18)
Range("E17").Value = Val(TextBox24)
Unload Me
End Sub
作者: Hsieh    時間: 2017-8-7 16:20

  1. Private Sub CommandButton2_Click()
  2. ay = Array(1, 7, 13, 19, 2, 8, 14, 20, 3, 9, 15, 21, 25, 26, 27, 28, 4, 10, 16, 22, 5, 11, 17, 23, 6, 12, 18, 24)
  3. For i = 0 To UBound(ay)
  4. r = Int(i / 4): c = i Mod 4
  5.   [B11].Offset(r, c) = Controls("TextBox" & ay(i)).Value
  6. Next
  7. Unload Me
  8. End Sub
複製代碼
回復 1# liebe
作者: liebe    時間: 2017-8-10 14:37

回復 2# Hsieh

Hsieh超級版主大大真得很感謝你!
但對於以下這三行我不是很了解
抱歉因為是新手想多學一點,所以問題比較多
不知道能否稍微和我解釋一下
感謝!
For i = 0 To UBound(ay)
r = Int(i / 4): c = i Mod 4
  [B11].Offset(r, c) = Controls("TextBox" & ay(i)).Value
作者: Hsieh    時間: 2017-8-10 20:29

ay 是按順序儲存Button序號的陣列,所以用迴圈跑完就能讀取所有Button內容
其中r與c變數是計算以B11為原點,位移幾列,幾欄的計算,完成妳希望的排列方式




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)