2017-09-26 69 views
1

我有一張名爲「查找」的紙張,並在該紙張的單元格B2中,用戶可以輸入部門代碼(例如190)並選擇「搜索」按鈕: enter image description hereExcel VBA獲取價值將一張紙作爲另一張紙上的搜索結果的參數

一旦他們點擊搜索按鈕,它會帶他們到一個叫紙「department_lookup」這列A與部門代碼190帳戶代碼中,並在塔B賬戶代碼說明。但是,在單元格C1中,我希望爲查找單元格「department_lookup」中的查詢可以刷新以顯示正確數據的方式搜索填充單元格C1的值。這裏是片「department_lookup」樣子: enter image description here

在列A & B將取決於許多帳戶代碼怎麼有部門代碼在這190是一個列表。

本質上,在片材數據department_lookup是一個動態查詢,我想小區C1到是改變查詢以顯示帳戶碼的參數值,該用戶是在單元格B2在片材搜索查找

下面的代碼我有片查找

On Error GoTo Done: 
     If Target.Column = 2 And Target.Cells.Count = 1 Then 
      Cancel = True 
      mycell = Sheets("department_lookup").Range("$C$1").Value 
      If mycell = " " Then GoTo Done: 
      Sheets("department_lookup").Activate 
     End If 
Sheets("acct_codes").Visible = False 
Sheets("dept_list").Visible = False 
Cancel = True 
Application.ScreenUpdating = True    
End Sub 

這裏是VBA我有片department_lookup

Private Sub Worksheet_Change(ByVal Target As Range) 

If Target.Address = "$C$1" Then 
With ActiveWorkbook.Connections("deptlookup").OLEDBConnection 
.CommandText = "select seg1_code+'-'+seg2_code+'-'+seg3_code+'-'+seg4_code as account_code, account_description from glchart as GL where GL.inactive_flag = 0 and seg2_code='" & Range("C1").Value & "' order by seg1_code" 
End With 
ActiveWorkbook.Connections("deptlookup").Refresh 
End If 
End Sub 

目前,當我手動更改的值單元格C1到不同的部門代碼,查詢department_lookup將更改爲顯示正確的代碼,但是,我認爲我的問題我s正確設置C1等於任何用戶在單元格B2中查找的單元格查找。任何人都可以幫忙嗎?

+0

只需將此行添加到您的搜索按鈕的代碼中: '工作表(「department_lookup」)。範圍(「C1」)。值=工作表(「lookup」)。範圍(「B2」)。值' – dwirony

回答

1

設置該表的C1到時提交按鈕的點擊等於您最初的表的單元格,然後按C1濾波,如:

Sheets("department_lookup").Cells(1, 3).Value = Sheets("lookup").Cells(2, 2).Value 
With Sheets("department_lookup") 
    .Range(.Cells(1, 1), .Cells(LR, LC)).AutoFilter field:=3, Criteria1:=.Cells(1, 3).Value, VisibleDropDown:=True 
End With 

你會定義LR在最後一行和LC爲最後一列。

+0

您使用單元格C1兩次,在一張表中的值爲B2 – Luuklag

+0

@Luuklag固定。還糾正了他的名單。 – Cyril

+0

@Cyril非常感謝您的回答。我應該把這段代碼放在查找表中嗎? – anve

相關問題