返回列表 上一主題 發帖

請問一個VBA 按鈕連結問題

回復 2# tonycho33
你檔案的 按鈕A1~A25 是 : 工具->自訂-表單               的按鈕(Button)
                                請改成:  工具->自訂-控制工具箱   的按鈕(CommandButton)
對應物件 的命名 (有對應性) :  如按鈕文字 (A1)  -> 對應物件 ( Group 1)  ; 按鈕文字( A16) ->  對應物件(Group 16)
請修改後上傳 再試試看.

TOP

回復 5# tonycho33
試試看


RE畫面.rar (125.31 KB)

TOP

本帖最後由 GBKEE 於 2012-1-16 13:42 編輯

回復 7# tonycho33
資料庫中Z欄到AF欄的儲存格如果有公式連結的話的話好像就會找不到  請舉個例
要如何新增旁邊的B1∼B8             C1∼C3             D1∼D2                       可依樣畫葫茹  
請改成:  工具->自訂-控制工具箱   的按鈕(CommandButton)     對應的圖片 請要先加工   如圖:


物件模組程式碼修改如下
  1. Option Explicit
  2. Public WithEvents A_CommandButton As MSForms.CommandButton   '物件模組的物件變數
  3. Private Sub A_CommandButton_Click()
  4.     Dim S As String, Rng As Range
  5.     S = A_CommandButton.Caption
  6.     With Sheet21
  7.         Set Rng = .Columns("Z").Find(S, LookAT:=xlWhole)
  8.         If Rng Is Nothing Then MsgBox "找不到 " & S: Exit Sub
  9.         [K3].Resize(5, 7) = Rng.Resize(5, 7).Value
  10.         If S Like "A*" Then
  11.             S = Replace(A_CommandButton.Caption, "A", "Group ")
  12.             '"A" 改為"Group " :  A15 ->   Group 15
  13.         ElseIf S Like "B*" Then
  14.             S = Replace(A_CommandButton.Caption, "A", "GroupB ")
  15.             '"B" 改為"GroupB " :  B1 ->   GroupB 1
  16.         ElseIf S Like "C*" Then
  17.             S = Replace(A_CommandButton.Caption, "C", "GroupC ")
  18.             '"C" 改為"GroupC " :  C1 ->   GroupC 1
  19.         ElseIf S Like "D*" Then
  20.             S = Replace(A_CommandButton.Caption, "D", "GroupD ")
  21.             '"B" 改為"GroupD " :  D1 ->   GroupD 1
  22.         End If
  23.         .Shapes(S).Select
  24.         If .[S1] > .[N6] And .[S1] < .[N7] Then
  25.             Selection.ShapeRange.Fill.ForeColor.SchemeColor = 17
  26.         Else
  27.             Selection.ShapeRange.Fill.ForeColor.SchemeColor = 10
  28.         End If
  29.     End With
  30.     DoEvents
  31.     ActiveCell.Select
  32. End Sub
複製代碼

TOP

回復 9# tonycho33
物件模組的程式碼
Set Rng = .Columns("Z").Find(S,  LookAt:=xlWhole)
改成
Set Rng = .Columns("Z").Find(S, LookIn:=xlValues, LookAt:=xlWhole)

TOP

        靜思自在 : 多做多得。少做多失。
返回列表 上一主題