0

我有以下代码在所有其他情况下都有效,除了在单个情况下它返回错误“无法移动焦点,因为它不可见、不启用或不接受焦点的类型”。表中的数据仅包含基本数字和单词。我的目标是从一个工作簿中选择一个范围并将其粘贴到另一个工作簿。尽管实际上存在,但似乎 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
4

3 回答 3

0

看起来其他人也有同样的问题,并且能够在 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

也许此修复程序也适用于您的情况。

......好吧,在那个页面上,一个人有一个似乎对他有用的kludge:

错误是:

无法将焦点移至控件,因为它不可见、未启用或属于不接受焦点的类型。

怎么修

1. 选择有问题的对象,例如窗体或控件。

2. 在属性窗口中,选择对象的名称并重命名,在末尾添加一个“x”,例如将 CPanel 重命名为 CPanelx。

3. 保存表格。

4.现在将 CPanelx 重命名为 CPanel。

5. 运行您的表单。

6.问题解决了。

Excel VBA 有些问题,不确定是什么!,但这会让你再次工作。史蒂夫·D。

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

在正常使用中,activeX 控件只是用来激活的,而不是被选中的,这是有区别的。如果您特别想选择控件(手动或使用代码),请先尝试将 Excel 置于设计模式。

另请参阅主题“为什么我不能选择表单和 ActiveX 控件?” 在 Excel 的帮助中(不是 VBA 的帮助)

彼得·桑顿

于 2013-10-15T05:28:27.153 回答
0

“运行时错误 '-2147352565 (8002000b)': 无法将焦点移至控件,因为它是不可见的、未启用的或不接受焦点的类型” 可以克服但按顺序定义您希望的区域选择。显然有些人可能会在任何情况下这样做,但在这个特定的情况下,需要克服这个问题。这是从一个工作簿复制到另一个工作簿并粘贴 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
于 2013-10-15T23:51:06.580 回答
0

只是为了帮助您,以防您直到现在才找到答案:在我的情况下,当我在应用程序窗口最大化时重新调整应用程序窗口时出现此消息:

例如Application.width = 100 (on Excel 2003 or 2007)

在这种情况下,解决方案是首先将应用程序窗口设置为 NORMAL。

例如ActiveWindow.WindowState = xlNormal

于 2018-05-25T08:34:48.387 回答