Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 如何将工作表复制到其他工作簿_Excel_Vba_Copy Paste - Fatal编程技术网

Excel 如何将工作表复制到其他工作簿

Excel 如何将工作表复制到其他工作簿,excel,vba,copy-paste,Excel,Vba,Copy Paste,我试图将活动工作表复制到其他工作簿中,但由于某些原因,我不知道我没有成功(即使在寻找其他似乎有效的解决方案的帖子之后)。我怎样才能做到这一点 这是我的密码: If CheckBox2 = True Then direccionar = Application.GetOpenFilename(, , "Select database") Set sourcewz = Workbooks.Open(Filename:=direccionar) l = sourcewz.Wor

我试图将活动工作表复制到其他工作簿中,但由于某些原因,我不知道我没有成功(即使在寻找其他似乎有效的解决方案的帖子之后)。我怎样才能做到这一点

这是我的密码:

If CheckBox2 = True Then
    direccionar = Application.GetOpenFilename(, , "Select database")
    Set sourcewz = Workbooks.Open(Filename:=direccionar)
    l = sourcewz.Worksheets.Count
    namico = HojaActiva.Name
    namico.Select
    Sheets(namico).Copy after:=Workbooks("Base de pedidos YA procesados.xlsm").Sheets(Sheets.Count)
End If
我得到这个错误:

错误9子索引超出间隔


这是因为Excel找不到工作簿
“Base de pedidos YA procesados.xlsm”
。 是否要将名为
HojaActiva
的工作表复制到您试图打开的工作簿中

在这种情况下,请使用以下代码:

Dim direccionar as Variant
direccionar = Application.GetOpenFilename(, , "Select database")
If direccionar = False Then    'Check if the user pressed Cancel'
    Exit Sub
End If
Set sourcewz = Application.Workbooks.Open(Filename:=direccionar)
HojaActiva.Copy After:=sourcewz.Sheets(sourcewz.Sheets.Count)

如果
direcciar
不是excel文件,会发生什么情况?
direcciar
不会是excel文件。
GetOpenFilename
返回一个
变量。如果用户按“取消”,则它是一个布尔值
false
,否则它是一个字符串。首先感谢您的帮助。第二,现在它做了一个副本,但不是所需的表,在代码中命名为hojaactiva,我尝试过这种修改,但仍然不起作用。。。direcciator=Application.GetOpenFilename(,“选择数据库”)设置sourcewz=Workbooks.Open(Filename:=direcciator)whisky=HojaActiva.Name Application.Sheets(whisky)。复制后:=sourcewz.Sheets(sourcewz.Sheets.Count)检查我所做的编辑。我以为你是想复制
ActiveSheet
。我知道HojaActiva在西班牙语中的意思是ActiveSheet,这个名字有误导性:)现在它应该可以工作了。谢谢你!!它起作用了!!这确实意味着,但Vba将其作为一个简单的变量,因为VB编辑器就像“britishh”jajaja一样