Board logo

標題: 請問一個VBA 按鈕連結問題 [打印本頁]

作者: tonycho33    時間: 2012-1-12 11:00     標題: 請問一個VBA 按鈕連結問題

請問一下我想設計上面有按鈕A1~A25
對應的資料庫在左邊(AB欄為空白)
只要按下對應的按鈕則顯示在K3~Q7的儲存格上

另外,M6是開始時間,M7是結束時間,S1是比對時間值
如果比對時間值在M6~M7(對應到資料庫上的比對時間)之間則顯示對應物件綠色
如果超出區間則顯示紅色

要如何寫呢
謝謝
作者: tonycho33    時間: 2012-1-13 11:45

請求各位協助
謝謝
作者: register313    時間: 2012-1-13 13:07

回復 2# tonycho33

將按鈕改為儲存格
先只處理A1~A11
  1. Private Sub Worksheet_SelectionChange(ByVal T As Range)
  2. If T.Row = 27 And T.Column >= 7 And T.Column <= 17 Then
  3. Set Rng = Columns("Z").Find(T)
  4. [K3].Resize(5, 7) = Rng.Resize(5, 7).Value
  5. If ([S1] > [N6]) And ([S1] < [N7]) Then
  6.    Shapes("Group " & Mid(Rng.Value, 2, 2)).Fill.ForeColor.SchemeColor = 11
  7. Else
  8.    Shapes("Group " & Mid(Rng.Value, 2, 2)).Fill.ForeColor.SchemeColor = 45
  9. End If
  10. End If
  11. End Sub
複製代碼
先抛出一點想法,後續讓大大們繼續討論
[attach]9205[/attach]
作者: GBKEE    時間: 2012-1-13 14:24

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

回復 4# GBKEE
作者: GBKEE    時間: 2012-1-13 18:43

回復 5# tonycho33
試試看


[attach]9210[/attach]
作者: tonycho33    時間: 2012-1-16 11:16

本帖最後由 tonycho33 於 2012-1-16 11:30 編輯

回復 6# GBKEE

你好
你寫的程式可以RUN
但是有問題想請教
資料庫中Z欄到AF欄的儲存格如果有公式連結的話的話好像就會找不到
要如何處理呢
要如何新增
旁邊的B1∼B8
             C1∼C3
             D1∼D2

謝謝
作者: GBKEE    時間: 2012-1-16 13:38

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

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

[attach]9219[/attach]
物件模組程式碼修改如下
  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
複製代碼

作者: tonycho33    時間: 2012-1-16 14:10

回復 8# GBKEE

公式連結的問題
作者: GBKEE    時間: 2012-1-16 15:36

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




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