|
跨表查询问题,想查询data工作表a列和b列中包含另一工作表单元格a1值的个数,返回到单元格b1中,哪位大大帮忙看一下,老是显示代码错误。
Sub CountMatchingValues2()
Dim Cn As Object
Dim Rs As Object
Dim StrSQL As String
Dim Count As Long
Dim searchValue As Variant
' 获取搜索值
searchValue = ThisWorkbook.Sheets("output").Range("A1").Value
' 创建ADO连接对象
Set Cn = CreateObject("ADODB.Connection")
' 连接到当前工作簿
On Error Resume Next ' 添加错误处理,以便在连接失败时能够优雅地处理
Cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties='Excel 12.0 Xml;HDR=NO;';"
If Err.Number <> 0 Then
MsgBox "无法连接到工作簿:" & Err.Description
Exit Sub
End If
On Error GoTo 0 ' 恢复正常的错误处理
' 构建SQL查询语句
StrSQL = "SELECT COUNT(*) FROM [data$] WHERE ([F1] = ? OR [F2] = ?)" ' 假设列标题为F1和F2
' 执行参数化查询
Set Rs = Cn.Execute(StrSQL, Array(searchValue, searchValue), 1)
' 获取查询结果中的数量
If Not Rs.EOF Then
Count = Rs.Fields(0).Value
Else
Count = 0
End If
' 关闭记录集和连接
Rs.Close
Set Rs = Nothing
Cn.Close
Set Cn = Nothing
' 将结果写入output工作表的B1单元格
ThisWorkbook.Sheets("output").Range("B1").Value = Count
End Sub
|
|