excel 错误:无法移动焦点,因为它不可见

egdjgwm8  于 2022-11-18  发布在  其他
关注(0)|答案(3)|浏览(136)

我有下面的代码,在所有其他情况下工作,除了在一个单一的,它返回错误“无法移动焦点,因为它是不可见的,未启用,或类型不接受焦点”.工作表中的数据只包含基本的数字和单词.我的目标是从一个工作簿中选择一个范围,并粘贴到另一个.它似乎Excel不识别任何东西在单元格中,虽然事实上是有的。有人知道为什么会发生这种情况吗?提前感谢。

Set Users = Application.Workbooks.Open(PathA)
        With Prices
        .Sheets("Sheet").Range("A:AJ").Select
        Selection.Copy
        End With
    'Set Risk = Application.Workbooks.Open(PathX)
        With Risk
        .Sheets("Sheet").Range("A1:AJ1048576").PasteSpecial Paste:=xlPasteAll
        .Save
       ' .Close
        End With
        Users.Close
j9per5c4

j9per5c41#

看起来其他人也遇到了同样的问题,并且能够在MSDN论坛上解决
http://social.msdn.microsoft.com/Forums/office/en-US/3263b079-7e4f-452c-8dcc-92c682b8370b/excel-form-cant-move-focus-to-the-control-because-it-is-invisible-not-enabled-or-of-a-type-that?forum=exceldev
也许这个修正也适用于你情况。
......好吧,在这一页上,有一个人有一个似乎对他有用的杂牌设备:

错误为:

  • 无法将焦点移到控件,因为该控件不可见、未启用或属于不接受焦点的类型。*
    如何修复
  • 1.选择有问题的对象,例如窗体或控件。*
  • 2.在属性窗口中,选择对象的名称并在末尾添加“x”进行重命名,例如,将CPanel重命名为CPanelx。*
  • 3.保存表单。*
  • 4.现在将CPanelx重新命名为CPanel。*
  • 5.运行表单。*
  • 6.问题解决。*
  • Excel VBA有些问题,不知道是什么!,但这会让你再次工作。Steve D.*

然后其他人描述了潜在的问题,但是他的解决方案涉及到使用设计模式,这看起来可能违背了在vba中自动化的目的,但是主持人似乎更喜欢他的答案,所以在这里也是如此

  • 在正常使用中,activeX控件仅用于激活,而不是选择,这是有区别的。如果您特别希望选择控件(手动或使用代码),请尝试先将Excel置于设计模式。*
  • 另请参阅Excel帮助(而非VBA帮助)中的主题“为什么我无法选择窗体和ActiveX控件?”*
  • 彼得·桑顿 *
yqyhoc1h

yqyhoc1h2#

“运行时错误”-2147352565(8002000 b)“:无法将焦点移到控件,因为它不可见、未启用或属于不接受焦点的类型”可以克服,但需要按顺序定义您希望选择的区域。显然,有些人在任何情况下都可能这样做,但在此特定情况下,需要克服此问题。这是一个从一个工作簿复制到另一个工作簿并粘贴的示例,其中U是Excel发现为“不可见”的工作表。

Dim U As Workbook
        Dim Us As Worksheet
    Set U = Application.Workbooks.Open(Path)
    Set Us = U.Worksheets("sheet")
    With Us
        .Range("A:AJ").Select
        Selection.Copy
    End With
        U.Close SaveChanges = True
    With DestinationWorkbook
        .Sheets("sheet").Range("A:AJ").PasteSpecial Paste:=xlPasteAll
        .Save
    End With
nnt7mjpx

nnt7mjpx3#

如果你到现在还没有找到答案,我想帮你一把:在我的例子中,当我在应用程序窗口最大化的情况下重新调整窗口尺寸时,出现了以下消息:
例如Application.width = 100 (on Excel 2003 or 2007)
这种情况下的解决方案是首先将应用程序窗口设置为NORMAL。
例如ActiveWindow.WindowState = xlNormal

相关问题