2016-10-03 83 views
0

我打开两个工作簿,它们是3D CAD文件的一部分,并且没有真正的路径。VBA:在两个打开的工作表之间导入数据(无路径)

反正以后我手动打开他们我想VBA从工作簿b移动,比如,A1应用于工作簿A.

为了VBA知道源的名字,我说工作簿B的名字存储在B1的工作簿A

我知道如何移动数据,如果我有一个路径,但既然有“无”,我该怎么做?谢谢!

+0

(a)本工作簿的“路径”通常不会(例如代码可能是Workbooks(“xyz.xlsx”)。Worksheets(“Sheet1”)。Range(“A1”)'但不会是'Workbooks(“C:\ abc \ def \ (b)如果你在工作簿中有一些东西来标识工作簿A和哪些是工作簿B,那么你应该能够循环遍历所有的工作簿(“xyz.xlsx”)。运在工作簿中找到符合条件的工作簿,并在工作簿中设置一个变量,然后使用该变量来引用工作簿。 – YowE3K

回答

0

来回后,我发现,这个工程太:

Private Sub import_Click() 

Dim wb1 As Workbook 
Dim wb2 As Workbook 

Dim ws1 As Worksheet 
Dim ws2 As Worksheet 

Set wb2 = ActiveWorkbook 
Set ws2 = wb2.Sheets("sheet1") 

Set wb1 = Workbooks(ActiveSheet.Range("n2").Value & ".xls") 
Set ws1 = wb1.Sheets("input") 


ws2.Range("a1") = ws1.Range("f90").Value 
End Sub 

谢谢你的好点子

1

希望得到这个帮助。

Dim FrmWorkbook As Workbook 
Dim iCount As Integer 

'Capture the source workbook 
For i = 1 To ThisWorkbook.Application.Workbooks.Count 
    'change the name of your source Workbook below 
    If ThisWorkbook.Application.Workbooks(i).Name = "Book1.xlsx" Then 
     Set FrmWorkbook = ThisWorkbook.Application.Workbooks(i) 
     Exit For 
    End If 
Next 

'option 1: row by row or column by colum. (Column C) 
Dim lRow As Long 

For lRow = 1 To 100 
    ThisWorkbook.Sheets(1).Range("C" & lRow).Value = FrmWorkbook.Sheets(1).Range("C" & lRow).Value 
Next 

'option 2: copy the entire sheet (assuming Sheet1) 
With FrmWorkbook.Sheets(1) 
    .Activate 
    .Select 
    .Copy before:=ThisWorkbook.Sheets(1) 
End With 

Set FrmWorkbook = Nothing 

MsgBox "DONE" 
+0

噢,从当前工作簿(目标工作簿)中的模块运行它。 –