我尝试通过使用对话框选择要复制数据的文件,将一系列值从工作簿复制到另一个工作簿。
我也不想打开" 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
答案 0 :(得分:2)
只是添加到算法的评论; 它会打开文件并从中读取,但不会关闭。这使得所有其他用户“READ_ONLY”!
我建议在代码的末尾:添加此内容以保存原始文件不变。
Application.DisplayAlerts = False
app.Workbooks.Close savechanges:=False
Application.DisplayAlerts = True
答案 1 :(得分:1)
尝试下面。但我有一些澄清,比如你将从哪里运行代码
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