jessylake 发表于 2023-4-16 13:19

当Excel工作表中有ActiveX控件时,用VB进行表复制会让工作簿由隐式变显示?

本帖最后由 jessylake 于 2023-4-16 21:47 编辑

Dim xlApp As Excel.Application, xlBook As Excel.Workbook   
Set xlApp = CreateObject("Excel.Application")         '创建EXCEL对象
xlApp.Visible = False                                              '设置EXCEL对象不可见

Set xlBook = xlApp.Workbooks.Open(FileName)      '打开已经存在的EXCEL工作簿文件
xlBook.Worksheets("模板").Copy Before:=xlBook.Worksheets("模板")
xlBook.ActiveSheet.Name = Text1.Text

但是发现如果工作簿中有 ActiveX控件,xlApp.Visible = False 就会失效,这是怎么回事?

jessylake 发表于 2023-4-16 14:25

如果有 ActiveX控件xlBook.Worksheets("模板").Copy Before:=xlBook.Worksheets("模板") 这句命令会强行显示工作簿,不知有何办法在不换控件的情况下保持工作簿看不见

zhaopengdoctor 发表于 2023-4-16 15:11

在PPT里插入控件后,控件总是显示在顶层,不能被其他形状覆盖,且不能给控件设置出现的动画使其隐藏。我想这是不是office里控件的通病啊。不知道能不能给你一些启示。

bin2163239 发表于 2023-4-16 15:17

本帖最后由 bin2163239 于 2023-4-16 15:19 编辑

Dim xlApp As Excel.Application, xlBook As Excel.Workbook   
Set xlApp = CreateObject("Excel.Application")         '创建EXCEL对象
xlApp.Visible = False                                              '设置EXCEL对象不可见
xlApp.ScreenUpdating = False

Set xlBook = xlApp.Workbooks.Open(FileName)      '打开已经存在的EXCEL工作簿文件

xlBook.Worksheets("模板").Copy Before:=xlBook.Worksheets("模板")
xlApp.CutCopyMode = False
xlBook.ActiveSheet.Name = Text1.Text

xlApp.ScreenUpdating = True


试试这个

jessylake 发表于 2023-4-16 16:42

bin2163239 发表于 2023-4-16 15:17
Dim xlApp As Excel.Application, xlBook As Excel.Workbook   
Set xlApp = Crea ...

谢谢,试了还是不行,其实我把表里的一个ActiveX控件换成相应的表单控件就ok了,发现只要用了ActiveX控件,执行xlBook.Worksheets("模板").Copy Before:=xlBook.Worksheets("模板")就会让表显示出来,用表单控件都没事,看来要不换表单控件,要不估计就没招了

jessylake 发表于 2023-4-16 16:47

zhaopengdoctor 发表于 2023-4-16 15:11
在PPT里插入控件后,控件总是显示在顶层,不能被其他形状覆盖,且不能给控件设置出现的动画使其隐藏。我想 ...
我发现换表单控件就一切ok,用ActiveX控件就是用copy会让表冒出来,用其他的操作还是ok的,比如删除一张表或给要吃个表起名

hbe 发表于 2023-4-16 19:52

这个应该是无法隐藏的

jessylake 发表于 2023-4-16 20:07

hbe 发表于 2023-4-16 19:52
这个应该是无法隐藏的

属于控件兼容问题吧

jessylake 发表于 2023-4-17 11:36

看来这个问题无解,只能换表单控件了,应该是VB对excel的Copy命令兼容不好
页: [1]
查看完整版本: 当Excel工作表中有ActiveX控件时,用VB进行表复制会让工作簿由隐式变显示?