各位大神解释下这段vba代码为什么报错?
正在学习vba跨表操作。我建了两个工作簿:跨文件访问.xlsm“和”销售表.xlsm“,现在要将销售表.xlsm中的”销售表-1“表数据复制到跨文件访问.xlsm工作簿中...
正在学习vba跨表操作。我建了两个工作簿:跨文件访问.xlsm“和”销售表.xlsm“,现在要将销售表.xlsm中的”销售表-1“表数据复制到跨文件访问.xlsm工作簿中的”销售“这个表里.
我写了两段代码,上一段能运行,下一段报错。
按理说,sheet1.activate能正常运行,那为什么在上面的代码中用sheet1就要报错。请大神解答下。谢谢。 展开
我写了两段代码,上一段能运行,下一段报错。
按理说,sheet1.activate能正常运行,那为什么在上面的代码中用sheet1就要报错。请大神解答下。谢谢。 展开
展开全部
Sheet1 是表这个对象的名称,同时也是指对象本身
销售表-1 是表的Name,是对象的参数之一
1 是表的位置编号(按Sheet排列顺序),所以其实还可以写作 Worksheets(1),也是对象的参数
以上三者是有区别的。
名称也可以修改(选中以后在左下角的属性窗口里改),它可以直接用,但限于本工作簿,所以它不需要(不能)跟在Workbooks父对象后。你可以写Sheet1.Activate,但不能写Workbooks("xxx").Sheet1.Activate。
Name是一个参数,任意工作簿的任意工作表都有的属性,所以前面可以指定Workbooks父对象,你跨表应该使用它。
编号也一样,可以跨工作簿使用,但因为编号很容易发生变化,不小心就会出错。
在下图的例子里:Worksheets("Sheet1") Workssheets(2) Sheet3 指的是同一个表。
展开全部
Windows("销售表").Activate
Sheets("销售表-1").Select
Range("A1").Select
Selection.Copy
Windows("跨文件访问").Activate
Sheets("销售").Select
Range("A1").Select
ActiveSheet.Paste
Windows‘就是当前打开的工作簿
如果想后台读取
Dim VBExcel As Excel.Application '定义Excel服务器应用程序
Dim ExcelBook As Excel.Workbook '定义Excel工作簿对象
Dim excelsheet As Excel.Worksheet
Set VBExcel = CreateObject("Excel.Application") '创建一个Excel应用程序
Set ExcelBook = VBExcel.Workbooks.Open(ThisWorkbook.Path & "\*.xlsx") '打开同路径某个名称excel文件
Set excelsheet = ExcelBook.Worksheets(“表名称或者表序号”)
‘这边具体操作
VBExcel.DisplayAlerts = False’屏蔽弹窗,因为关闭时会问你是否保存所以加这句
VBExcel.Quit‘关闭
Set VBExcel = Nothing’清空
Set ExcelBook = Nothing
Set excelsheet = Nothing
Sheets("销售表-1").Select
Range("A1").Select
Selection.Copy
Windows("跨文件访问").Activate
Sheets("销售").Select
Range("A1").Select
ActiveSheet.Paste
Windows‘就是当前打开的工作簿
如果想后台读取
Dim VBExcel As Excel.Application '定义Excel服务器应用程序
Dim ExcelBook As Excel.Workbook '定义Excel工作簿对象
Dim excelsheet As Excel.Worksheet
Set VBExcel = CreateObject("Excel.Application") '创建一个Excel应用程序
Set ExcelBook = VBExcel.Workbooks.Open(ThisWorkbook.Path & "\*.xlsx") '打开同路径某个名称excel文件
Set excelsheet = ExcelBook.Worksheets(“表名称或者表序号”)
‘这边具体操作
VBExcel.DisplayAlerts = False’屏蔽弹窗,因为关闭时会问你是否保存所以加这句
VBExcel.Quit‘关闭
Set VBExcel = Nothing’清空
Set ExcelBook = Nothing
Set excelsheet = Nothing
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你以为错误在这个地方,实际上错误不在这个地方。
应该是你的当前工作簿发生了改变,导致空格后面的目标的工作簿变了引起错误。
应该是你的当前工作簿发生了改变,导致空格后面的目标的工作簿变了引起错误。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询