返回列表 上一主題 發帖

[發問] 如何讓下拉選單選取後自動跳到儲存格相對應處?

[發問] 如何讓下拉選單選取後自動跳到儲存格相對應處?

相片輸出價目表.rar (23.49 KB)
在規則名稱下拉選單選取後,如何自動跳到相對應的數量區?

例如:
點一下A2~會出現下拉選單,選取後~如何自動跳到C2?
然後有多筆資料時,會繼續點一下A3,會出現下拉選單~選取後~如何自動跳到C3?

回復 1# av8d


    或是說改成~當數量輸入後按下Enter後~自動跳到規格名稱

例如:C2輸入數字後按下Enter後~自動跳到A2

TOP

本帖最後由 stillfish00 於 2013-11-4 20:18 編輯
  1. Private Sub ComboBox1_Change()
  2.   Application.EnableEvents = False
  3.   
  4.   ComboBox1.Visible = False
  5.   Range(ComboBox1.LinkedCell).Offset(, 2).Select
  6.   
  7.   Application.EnableEvents = True
  8. End Sub
複製代碼
回復 1# av8d

TOP

回復 3# stillfish00
順帶請教一個問題:
(假設新增一個 Excel 檔案)
在 "工作表2" A 欄位中如何去設定 ActiveCell.Validation.Formula1 對應下拉式 List 的指定欄位值,
譬如:   "=工作表1!$A$3:$A$20"      (即從 "工作表2" A2:A10 都能自動去對應 "工作表1" 的 A3:A20)
謝謝你!
(不好意思,我對這方面的應用從沒觸摸過  -  欠學)

TOP

本帖最後由 stillfish00 於 2013-11-5 09:43 編輯

回復 4# c_c_lai
你可以從  資料>資料驗證>去設定儲存格內清單,再選來源。
VBA可參考 Validation.Add 方法。
  1.   With Sheets("工作表2").[A2:A10].Validation
  2.     .Delete
  3.     .Add Type:=xlValidateList, Formula1:="=工作表1!$A$3:$A$20"
  4.   End With
複製代碼

TOP

回復 5# stillfish00
感激,終於又學到如何設定 Validation 了,
再次謝謝你!

TOP

回復 2# av8d
綜合了 stillfish00 大大提供的函數,以及加上整合你的需求而成。
1.   " 點一下A2~會出現下拉選單,選取後~如何自動跳到C2 ",
2.   " 當數量輸入後按下Enter後~自動跳到規格名稱 (C2輸入數字後按下Enter後~自動跳到A2) "
第二項需求,修改成:
當數量輸入後按下Enter後~自動跳到下一個規格名稱 (C2輸入數字後按下Enter後~自動跳到A3 )
  1. Public ckCurr As Boolean

  2. Private Sub ComboBox1_Change()    '  stillfish00 提供
  3.     If ckCurr Then Exit Sub
  4.    
  5.     Application.EnableEvents = False
  6.    
  7.     ckCurr = False
  8.     ComboBox1.Visible = False
  9.     Range(ComboBox1.LinkedCell).Offset(, 2).Select
  10.     Application.EnableEvents = True
  11. End Sub

  12. Private Sub CommandButton1_Click()
  13.     If Me.ComboBox1.Visible Then ckCurr = True: Me.ComboBox1.Visible = False
  14.    
  15.     Range("A2:A25,C2:C25").Select
  16.     Selection.ClearContents
  17. End Sub

  18. Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  19.     Dim StrVdFml As String
  20.    
  21.     '  If ckCurr Then Exit Sub
  22.     On Error Resume Next
  23.         StrVdFml = Replace(ActiveCell.Validation.Formula1, "=", "")
  24.         '  ActiveCell.Validation.Formula1 :  "=工作表1!$A$3:$A$20"
  25.         '  ComboBox1.ListFillRange        :   工作表1!$A$3:$A$20
  26.         '  Replace(ActiveCell.Validation.Formula1, "=", "") : "工作表1!$A$3:$A$20"
  27.         '  StrVdFml : "工作表1!$A$3:$A$20"
  28.         ActiveCell.Validation.InCellDropdown = False
  29.     On Error GoTo 0
  30.     If StrVdFml = "" Then
  31.         If Me.ComboBox1.Visible Then Me.ComboBox1.Visible = False
  32.     Else
  33.         With Me.ComboBox1
  34.             '  ComboBox1.progID   =EMBED("Forms.ComboBox.1","")
  35.             '  ComboBox1:        ComboBox
  36.             '  LinkedCell:       $A$2
  37.             '  ListFillRange :   工作表1!$A$3:$A$20
  38.             .Left = ActiveCell.Left
  39.             .Top = ActiveCell.Top
  40.             '  .Width = ActiveCell.Width + 140
  41.             .Width = ActiveCell.Width
  42.             '  .Height = ActiveCell.Height + 10
  43.             .Height = ActiveCell.Height
  44.             '  .Font.Size = 22
  45.             .Font.Size = 12

  46.             .LinkedCell = ActiveCell.Address    '  "$A$2"
  47.             .ListFillRange = StrVdFml           '  "工作表1!$A$3:$A$20"
  48.             .Visible = 1                        '  顯示下拉符號

  49.             .Object.SpecialEffect = 3
  50.             '.Object.Font.Size = ActiveCell.Font.Size
  51.         End With
  52.     End If
  53.   
  54.     ckCurr = False
  55. End Sub

  56. Private Sub Worksheet_Change(ByVal Target As Range)
  57.     '  Target.Font.ColorIndex = 5
  58.    
  59.     If Not Intersect(Target, Range("C2:C25")) Is Nothing Then
  60.         If Target(1, 1) = 0 Then Exit Sub
  61.         ckCurr = True
  62.         '  MsgBox Target.Address
  63.         Target.Offset(1, -2).Select
  64.     End If
  65. End Sub

  66. Sub CellValidation()      '  stillfish00 提供
  67.     With Sheets("工作表2").[A2:A25].Validation
  68.         .Delete
  69.         .Add Type:=xlValidateList, Formula1:="=工作表1!$A$3:$A$20"
  70.     End With
  71. End Sub
複製代碼

相片輸出價目表.rar (27.72 KB)

TOP

謝謝~stillfish00 大大的解答
讓c_c_lai大大解答了我真正想要使用的功能~

兩位大大謝謝~學習了

TOP

回復 7# c_c_lai

我下載你的檔案,點選Sheet2 - A2沒有出現下拉選單,
請問我還需要做哪些設定。
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復  c_c_lai

我下載你的檔案,點選Sheet2 - A2沒有出現下拉選單,
請問我還需要做哪些設定。
ML089 發表於 2013-11-6 09:14

TOP

        靜思自在 : 人的眼睛長在前面,只看到別人的缺點,絲毫看不到自己的缺點。
返回列表 上一主題