当前位置: 首页 > 面试题库 >

Excel VBA / SQL联合会

南门鸿雪
2023-03-14
问题内容

我正在尝试将2个不同工作表中的2个单独的列连接起来,以制成更长的列,然后可以从中使用Vlookup。

工作表1 A,B,C,D,E,F,G

工作表2 A,B,C,D,E,F,G

我想将工作表1中的B列和工作表2中的C列连接起来(联合),并找到新列表的Distinct值。我已经为此工作了好几个星期。

谢谢


问题答案:

您可以将ADO与Excel一起使用。

Dim cn As Object
Dim rs As Object
Dim strFile As String
Dim strCon As String
Dim strSQL As String
Dim s As String
Dim i As Integer, j As Integer

''This is not the best way to refer to the workbook
''you want, but it is very conveient for notes
''It is probably best to use the name of the workbook.

strFile = ActiveWorkbook.FullName

''Note that if HDR=No, F1,F2 etc are used for column names,
''if HDR=Yes, the names in the first row of the range
''can be used. 
''This is the Jet 4 connection string, you can get more
''here : http://www.connectionstrings.com/excel

strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFile _
    & ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"";"

''Late binding, so no reference is needed

Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")


cn.Open strCon

''A sample query
strSQL = "SELECT Distinct A, B C FROM ( " _
       & "SELECT A, B, C " _
       & "FROM [Sheet1$] " _
       & "UNION ALL " _
       & "SELECT A, B, C " _
       & "FROM [Sheet2$] ) As J "


''Open the recordset for more processing
''Cursor Type: 3, adOpenStatic
''Lock Type: 3, adLockOptimistic
''Not everything can be done with every cirsor type and 
''lock type. See http://www.w3schools.com/ado/met_rs_open.asp

rs.Open strSQL, cn, 3, 3

''Write out the data to an empty sheet (no headers)
Worksheets("Sheet3").Cells(2, 1).CopyFromRecordset rss


 类似资料:
  • 问题内容: 问题:我有一个SQL函数,该函数返回文件列表 现在,我应该使用联合将其他列表加入该列表,但前提是用户是admin。 那可能吗?就像是: 问题答案:

  • 问题内容: 我有一个这样的表: SQL查询应如何汇总以下结果: 问题答案: 注意:STUFF函数只是从返回的字符串中删除前导/。

  • 问题内容: 我花了点时间弄清楚我需要的SQL查询。 我有一个项目,该项目具有用户的工作室级别的用户角色,并且每个项目都有覆盖/覆盖工作室级别的角色的项目级别的角色。所有角色都是在工作室级别定义的,但是只有一些角色是在项目级别定义的(主要是与相应的工作室级别角色具有不同值的角色) g_studio_UsersInRole g_project_UsersInRole 我需要一个查询,该查询将给定项目I

  • 问题内容: 我有一个查询,如: 当我这样使用时,由于if条件,它给出了错误。由于我们的结构,我必须使用UNION。 我该如何在if条件下使用它? 谢谢 问题答案: 将条件移到子句中,如下所示:

  • 问题内容: 我有一个SQL语句,我正在尝试将其转换为LINQ to SQL,并且已经设法将其中的大多数转换了,但是遇到了一个语句,我无法在LINQ中全神贯注。 引起头痛的SQL查询部分是: 是包含一系列操作的表,是可用操作的列表。是状态列表的索引-4 ==’失败’。 基本上,对于 未 失败的动作,它需要返回 下一个 动作。如果行动 已经 失败,它返回 当前 的行动。 这只是联接之一(完整查询中总共

  • 问题内容: 当我们使用union all从两个表中获取结果时,如何应用分页。以下是这里的代码,我在用于分页的“ row_num”列中获取重复值。 问题答案: 尽管您还没有发布完整的查询,但是您可以尝试这样的操作