2016-04-04 10 views
0

データMicrosoft QueryをMicrosoft Excelで比較すると、シートを比較するのにc:\ user \ mgow \ desktop \ Excel.xlsmのパスが必要です。しかし、このExcel.xlsmファイルを他のシステムで使用すると、エラーが表示されます(odbcはドライバのログインに失敗しました)。誰もがこの問題を克服するのに役立つことができます。excelで2枚のシート間のデータを比較しながら一般的なパスを与えるには?

注:私は特定のパスC:\ Users \ mgow \ Desktop \ Excel.xlsmを使用したくありません 誰もが使用できる共通パスを使用できますか?

(サブマクロ)

Application.CutCopyMode = False 
With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array(Array(_ 
    "ODBC;DSN=Excel Files;DBQ=C:\Users\mgow\Desktop\Excel.xlsm;DefaultDir=C:\Users\mgow\Desktop\" _ 
    ), Array("RAM;DriverId=1046;MaxBufferSize=2048;PageTimeout=5;")), Destination _ 
    :=Range("$B$1")).QueryTable 
    .CommandType = 0 
    .CommandText = Array(_ 
    "SELECT `Result$`.REQUIREMENTS, `Result$`.`AUDIT DATA`, `Result$`.`AUDIT DATA1`, `Result$`.`AUDIT DATA2`, `Result$`.`AUDIT DATA3`, `Result$`.`AUDIT DATA4`, `Result$`.`AUDIT DATA5`, `Result$`.`AUDIT DAT" _ 
    , _ 
    "A6`, `Result$`.`AUDIT DATA7`, `Result$`.`AUDIT DATA8`, `Result$`.`AUDIT DATA9`, `Result$`.`AUDIT DATA10`, `Result$`.`AUDIT DATA11`, `Result$`.`AUDIT DATA12`, `Result$`.`AUDIT DATA13`, `Result$`.`AUDIT" _ 
    , _ 
    " DATA14`, `Result$`.`AUDIT DATA15`, `Result$`.`AUDIT DATA16`, `Result$`.`AUDIT DATA17`, `Result$`.`AUDIT DATA18`, `Result$`.`AUDIT DATA19`, `Result$`.`AUDIT DATA20`, `Result$`.`AUDIT DATA21`" & Chr(13) & "" & Chr(10) & "FROM `Co" _ 
    , _ 
    "mpare$` `Compare$`, `Result$` `Result$`" & Chr(13) & "" & Chr(10) & "WHERE `Result$`.REQUIREMENTS = `Compare$`.REQUIREMENTS" _ 
    ) 
    .RowNumbers = False 
    .FillAdjacentFormulas = False 
    .PreserveFormatting = True 
    .RefreshOnFileOpen = False 
    .BackgroundQuery = True 
    .RefreshStyle = xlInsertDeleteCells 
    .SavePassword = False 
    .SaveData = True 
    .AdjustColumnWidth = True 
    .RefreshPeriod = 0 
    .PreserveColumnInfo = True 
    .ListObject.DisplayName = "Table_Query_from_Excel_Files" 
    .Refresh BackgroundQuery:=False 
End With 

End Subの

+0

を使用することができます保存されている場所/パスを参照したい場合これがうまくいかない場合は、エラーの正確な説明とその行が表示されるとともに、そのコードを質問の一部として投稿する必要があります。 –

+0

「誰もが使える共通の道」は何でしょうか?ネットワーク共有を意味しますか? –

+0

Excelシートを誰かに送っても、自分のパス(C:\ Users \ mgow \ Desktop \ Excel.xlsm)を使わずにこの比較機能にアクセスできるはずです。ドキュメントが保存されている場所に関係なく、Excelシートのみを使用して比較します。 –

答えて

0

ワークブックを使用すると、マクロコードをお持ちの場合は、

ThisWorkbook.Path 
関連する問題