|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
本帖最后由 hehex 于 2014-7-11 19:23 编辑
waini13142962 发表于 2014-7-11 15:27
非常感谢您的回答,您的思路是建一个查询窗口,我原本的意思是只要我在“引用表里”的A列输入编号,后面就 ...
参考下列代码,你的编号必须输入在A 列内从A1 开始顺序向下,每个编号占一个单元格。
查询结果写在从D1 开始的表格中。- Sub lqxs()
-
- Dim bhid As String, connstr As String, xrow&, arr(), i&
-
-
- Sheet1.Activate
- xrow = Cells(Rows.Count, "a").End(xlUp).Row
-
- If xrow = 1 Then
- If Len([a1]) = 0 Then
- bhid = "*"
- Else: bhid ="'" & [a1] & "'"
- End If
- Else
- arr = WorksheetFunction.Transpose(Range("a1:a" & xrow))
- For i = 1 To UBound(arr)
- bhid = bhid & "'" & arr(i) & "' or 编号="
- Next
- bhid = Left(bhid, Len(bhid) - 7)
-
- End If
-
- Cells.Clear
-
-
- connstr = "odbc;DSN=Ms Access Database;DBQ=" & ThisWorkbook.Path & "\数据源.mdb"
-
- With Sheet1.QueryTables.Add(connstr, [d1])
-
- If bhid = "*" Then
-
- .CommandText = "select 编号,客户,用途,名称,数量,图纸,指定号 from 主线"
-
- Else
-
- .CommandText = "select 编号,客户,用途,名称,数量,图纸,指定号 from 主线 Where 编号=" & bhid
-
-
- End If
-
- .Refresh
-
- End With
-
- [d1].CurrentRegion.Borders.LineStyle = 1
-
- Erase arr
- End Sub
复制代码 |
|