2017-05-29 10 views
-2

この問題の明白な解決策は見つかりませんでした。VBA:閉じたブックからのインポートデータ

クローズドWs.DataからすべてのデータをアクティブCurrentWs.Dataにコピーしたいとします。どのようにすればいいのですか?

+0

好奇心のちょうど - あなたは 'Ws.Data'を開き、シートをコピーしてもう一度閉じたいのですが?これには良い解決策があります。 – Vityata

答えて

1

はADODB接続を試してみてください。

Sub copyFromWs() 
Dim Cnx As ADODB.Connection 
Dim fileToCopy As String 
Dim SheetName As String, request_SQL As String 
Dim Rst As ADODB.Recordset 


fileToCopy = "C:\monClasseurBase.xls" 'here you can use something like ws.data.pathname 
SheetName = "Sheet1" 'Here it's your ws.Data 
Set Cnx = New ADODB.Connection 

'Connection 
With Cnx 
    .Provider = "Microsoft.Jet.OLEDB.4.0" 
    .ConnectionString = "Data Source=" & filetocopy & _ 
     ";Extended Properties=Excel 8.0;" 
    .Open 
End With 


'Request 
request_SQL= "SELECT * FROM [" & SheetName & "$]" 

Set Rst = New ADODB.Recordset 
Set Rst = Cnx.Execute(request_SQL) 

Range("A1").CopyFromRecordset Rst 
'Here for you something like currentws.Data.Range("A1").CopyFromRecordset Rst 

'Close 
Cnx.Close 
Set Cnx = Nothing 
End Sub 
0

このリンクをクリックすると、閉じたブックからデータをコピーするのに最適です。

https://www.rondebruin.nl/win/s3/win024.htm

それとも、これを試してみてください。

Sub ImportDatafromcloseworkbook() 
'Update 20150707 
Dim xWb As Workbook 
Dim xAddWb As Workbook 
Dim xRng1 As Range 
Dim xRng2 As Range 
Set xWb = Application.ActiveWorkbook 
xTitleId = "KutoolsforExcel" 
With Application.FileDialog(msoFileDialogOpen) 
    .Filters.Clear 
    .Filters.Add "Excel 2007-13", "*.xlsx; *.xlsm; *.xlsa" 
    .AllowMultiSelect = False 
    .Show 
    If .SelectedItems.Count > 0 Then 
     Application.Workbooks.Open .SelectedItems(1) 
     Set xAddWb = Application.ActiveWorkbook 
     Set xRng1 = Application.InputBox(prompt:="Select source range", Title:=xTitleId, Default:="A1", Type:=8) 
     xWb.Activate 
     Set xRng2 = Application.InputBox(prompt:="Select destination cell", Title:=xTitleId, Default:="A1", Type:=8) 
     xRng1.Copy xRng2 
     xRng2.CurrentRegion.EntireColumn.AutoFit 
     xAddWb.Close False 
    End If 
End With 
End Sub 
+0

そのコードは、開いているブックからコピーし、閉じたブックではコピーしません。 – YowE3K

関連する問題