将范围从工作簿复制到另一个而不打开
Copy range from workbook to another without open
我正在尝试通过使用对话框将一系列值从一个工作簿复制到另一个工作簿,方法是 select 我要从中复制数据的文件。
我也不想在此过程中打开 "copyFrom" 工作簿。问题在于将字符串 "filename" 中的文件路径传递给工作簿变量 "copyFrom".
Option Explicit
Private Sub butt_copy_Click()
Call copy1
End Sub
Private Sub copy1()
Dim fileName As String, copyFrom As Workbook
fileName = Application.GetOpenFilename()
copyFrom = filename
Sheet1.Range("A1:A20") = copyFrom.Sheets(Sheet1).Range("A1:A20")
End Sub
试试下面。但我有一些澄清,例如 运行 来自
的代码
Application.Visible=False
Set copyFrom = Application.Workbooks.Open(fileName)
然后试试下面。非常适合我
Private Sub copy1()
Dim app As New Excel.Application
Dim fileName As String, copyFrom As Workbook
app.Visible = False
fileName = app.GetOpenFilename()
Set copyFrom = app.Workbooks.Open(fileName)
MsgBox copyFrom.Sheets(1).Cells(1, 1)
'Sheet1.Range("A1:A20") = copyFrom.Sheets(Sheet1).Range("A1:A20")
End Sub
只是要添加到算法中的评论;
它打开文件并从中读取,但不关闭。这使得所有其他用户 "READ_ONLY"!
我建议在代码末尾添加:保存原始文件不变。
Application.DisplayAlerts = False
app.Workbooks.Close savechanges:=False
Application.DisplayAlerts = True
我正在尝试通过使用对话框将一系列值从一个工作簿复制到另一个工作簿,方法是 select 我要从中复制数据的文件。
我也不想在此过程中打开 "copyFrom" 工作簿。问题在于将字符串 "filename" 中的文件路径传递给工作簿变量 "copyFrom".
Option Explicit
Private Sub butt_copy_Click()
Call copy1
End Sub
Private Sub copy1()
Dim fileName As String, copyFrom As Workbook
fileName = Application.GetOpenFilename()
copyFrom = filename
Sheet1.Range("A1:A20") = copyFrom.Sheets(Sheet1).Range("A1:A20")
End Sub
试试下面。但我有一些澄清,例如 运行 来自
的代码Application.Visible=False
Set copyFrom = Application.Workbooks.Open(fileName)
然后试试下面。非常适合我
Private Sub copy1()
Dim app As New Excel.Application
Dim fileName As String, copyFrom As Workbook
app.Visible = False
fileName = app.GetOpenFilename()
Set copyFrom = app.Workbooks.Open(fileName)
MsgBox copyFrom.Sheets(1).Cells(1, 1)
'Sheet1.Range("A1:A20") = copyFrom.Sheets(Sheet1).Range("A1:A20")
End Sub
只是要添加到算法中的评论; 它打开文件并从中读取,但不关闭。这使得所有其他用户 "READ_ONLY"!
我建议在代码末尾添加:保存原始文件不变。
Application.DisplayAlerts = False
app.Workbooks.Close savechanges:=False
Application.DisplayAlerts = True