-1

2 つの Excel シートがあります (Excel 2007 を使用)

列名を含む Excel sheet1

name  
kumar 
manu  
kiran  
anu   

列名を含む Excel シート 2

name 
kumar   
anu 

シートをアップロードし、ボタンをクリックします (ここでは、各シートの名前の列を比較します)。次に、シート 2 にない名前を別の Excel シートに追加し、D:\names.xlsx に保存する必要があります。

したがって、names.xlsx シートには含まれている必要があります

names
manu  
kiran

私の質問が明確であることを願っています。

4

2 に答える 2

2

ADO を使用できます。

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 convenient 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

strSQL = "SELECT [Name] " _
       & "FROM [Sheet1$] a " _
       & "LEFT JOIN [Sheet2$] b " _
       & "ON a.[Name]=b.[Name] " _
       & "WHERE b.Name Is Null"

rs.Open strSQL, cn, 3, 3


''Pick a suitable empty worksheet for the results

Worksheets("Sheet3").Cells(2, 1).CopyFromRecordset rs

''Tidy up
rs.Close
Set rs=Nothing
cn.Close
Set cn=Nothing
于 2010-07-13T12:20:03.850 に答える
1

これを行う最も簡単な方法は次のとおりです。

  1. C#でExcelファイルをデータテーブルに読み込む
  2. データテーブルのマージ機能を使用して列をマージします
  3. データを Excel ファイルに書き戻します。
于 2010-07-13T09:16:50.130 に答える