2013-10-15 45 views
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 
+0

[有趣的閱讀](http://stackoverflow.com/questions/10714251/excel-macro-avoiding-using-select) –

+0

你打開一個工作簿'用戶',但從'價格'複製 - 不知道這是相關的到你的問題。 –

+0

這很有趣。 – user2832896

回答

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

也許這個修補程序將適用於你的情況了。

... OK,這樣頁面上,一個人有一個雜牌,似乎爲他工作:

錯誤:

不能將焦點移到控制,因爲它是不可見,未啓用或不接受焦點的類型。

如何解決

1.選擇的問題,例如對象窗體或控件。

2.在屬性窗口中,選擇對象的名稱並重命名,在末尾添加「x」,例如,將CPanel重命名爲CPanelx。

3.保存表格。

4.現在將CPanelx重命名爲CPanel。

5.運行您的表單。

6.問題解決。

與Excel VBA扭曲的東西,不知道什麼!,但這會讓你再次工作。 史蒂夫D.

,然後別人描述的根本問題,但使用的設計模式,這似乎像它可能擊敗在VBA自動化的目的,他的解決方案涉及,但主持人很喜歡看他的回答比較好,所以這裏也是如此

在正常使用情況下,activeX控件僅用於激活,而不是選中,這是有區別的。如果您一定要選擇控件(手動或使用代碼),請嘗試首先將Excel設置爲設計模式。

另請參閱主題「爲什麼我不能選擇窗體和ActiveX控件?「在Excel的幫助下(沒有VBA的幫助)

彼得·桑頓

+1

而不是downvoting,我想我會先要求你。 :)裸鏈接是低質量的答案。您可能想要改進您的答案併爲其添加更多含義,以便將來如果鏈接斷開,我們仍然知道解決方案是什麼。這也將有助於未來的用戶。 –

+0

非常感謝您的回答。我確實看到了這一點,我認爲這是參考form或activeX控件,而不是從一個地方選擇,複製和粘貼到另一個地方。 – user2832896

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 
相關問題