返回列表 上一主題 發帖

[發問] 如何利用迴圈直接改Label 的name?(已解決)

[發問] 如何利用迴圈直接改Label 的name?(已解決)

本帖最後由 icestormer 於 2012-5-7 08:41 編輯

我有大約53個label16 -label53 我想利用迴圈 直接把name 改成 label16>>LB1 一宜到LB53


但我發現改不呢, 改它的caption 倒可以 不知要怎寫呢?
Sub 改名()

  For i = 1 To 53
   
         我的表單.Controls("Label" & i + 15).Name

  Next
  
  End Sub

小弟功力尚淺…
看沒有很懂你想要表達什麼,有沒有附件呢?
有付件幫您做比較快……
初學VBA乍到twbts

TOP

回復 1# icestormer
必須是由程式動態新增物件才能夠在表單初始化時做新增同時命名
已經使用手動布置的物件,在表單啟動後則無法重新命名
學海無涯_不恥下問

TOP

回復 3# Hsieh


   那我了解 感謝 超版

TOP

本帖最後由 icestormer 於 2012-5-4 11:36 編輯

可以請教一下  如何寫動態建立Label 在表單上呢 ,?可以同時設定 多長 多高 及位置嗎?

TOP

回復 5# icestormer
  1. Private Sub UserForm_Initialize()
  2. '新增2欄8列
  3. For j = 1 To 2
  4.     For i = 1 To 8
  5.       With Controls.Add("Forms.Label.1", "LA" & i & "_" & j, True)
  6.       .Caption = .Name
  7.          .Top = 20 * (i - 1) + 5
  8.          .Left = 160 * (j - 1) + 5
  9.          .Width = 155
  10.          .Height = 18
  11.       End With
  12.     Next
  13. Next
  14. End Sub
複製代碼
學海無涯_不恥下問

TOP

回復 6# Hsieh


   謝 超版 來去試看看^^

TOP

本帖最後由 icestormer 於 2012-5-5 21:32 編輯

問題1.rar (6.87 KB) 回復 6# Hsieh



請問超版  我用下列程式碼在自訂表單上 生出這些label  那要怎在另一個按鍵 (改變)中 改變LA0的CAPTION呢? 都一直說 找不到物件

另外 如果想刪除透過程式碼生成的控制項(像是Label)又要怎寫呢??
    Private Sub CommandButton2_Click()
For j = 0 To 32
              For i = 0 To 6           
                With Controls.Add("Forms.Label.1", "LA" & j + i, True)'請問這行中的 TRUE 是不是指 要顯示的意思?
                   .Caption = .Name
                   .Font.Size = 12
                   .BorderStyle = 1
                   .ForeColor = &H80000012
                   .Top = 42 + (j * 14)
                   .Left = i * 70
                   .Width = 70
                   .Height = 16
                   .TextAlign = 3
             end with
    next  i
next j
=======================================================
另外不知要怎寫迴圈能表現出下方這種情況呢?

試了好久但都試不出來 像下方的程式碼怎要怎寫. 用雙迴圈 也寫不出來

1的10
2的9
3的8
4的7
5的6
6的5
7的4
8的3
9的2
10的1

TOP

回復 8# icestormer
表單物件只能用隱藏不能刪除
  1. Private Sub CommandButton1_Click()
  2. If ComboBox1 = "" Then Exit Sub
  3. Me.Controls(ComboBox1.Text).Visible = False  '.Caption = "ar"
  4. ComboBox1.RemoveItem ComboBox1.ListIndex
  5. ComboBox1 = ""
  6. End Sub

  7. Private Sub CommandButton2_Click()
  8. Me.Controls(ComboBox1.Text).Caption = TextBox1
  9. End Sub

  10. Private Sub UserForm_Initialize()
  11. '新增2欄8列
  12. For j = 1 To 2
  13. k = 0
  14.     For i = 1 To 10
  15.     k = k + 1
  16.       With Controls.Add("Forms.Label.1", "LA" & k & "_" & 10 - k + 1 & "_" & j, True)
  17.       .Caption = .Name
  18.          .Top = 20 * (i - 1) + 5
  19.          .Left = 160 * (j - 1) + 5
  20.          .Width = 155
  21.          .Height = 18
  22.          ComboBox1.AddItem .Name
  23.       End With
  24.     Next
  25. Next
  26. End Sub
複製代碼
play.gif
活頁簿1.rar (11.24 KB)
學海無涯_不恥下問

TOP

回復 9# Hsieh


   謝 超版  來去試看看

TOP

        靜思自在 : 口說一句好話,如口出蓮花;口說一句壞話如口吐毒蛇。
返回列表 上一主題