2016-01-20 69 views
0

我一直在網上尋找想法如何獲得一個範圍,然後「清理」它。可悲的是,儘管我已經找到了幾種解決方案,但是在自由職業辦公室中的vba使事情變得非常複雜。我試圖記錄一個宏,並編輯它...它的工作原理,但不是我想要的。我需要從窗體(對話框)執行下面的代碼,它完成它的意思,但是顯示了背景中的所有內容,我不能這樣做......有沒有辦法做到這一點?例如在VBA Exel公司,我只想寫:自由職業辦公室,清理範圍

Range("A1:DA25000").ClearContents (or .Delete) 

這是我用宏錄製了:

Function Brisanje() 

dim document as object 
dim dispatcher as object 

document = ThisComponent.CurrentController.Frame 
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper") 

dim args1(0) as new com.sun.star.beans.PropertyValue 
args1(0).Name = "Nr" 
args1(0).Value = 2 

dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args1()) 

dim args2(0) as new com.sun.star.beans.PropertyValue 
args2(0).Name = "ToPoint" 
args2(0).Value = "$A$1:$DA$25000" 

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args2()) 

dispatcher.executeDispatch(document, ".uno:ClearContents", "", 0, Array()) 

end Function 

回答

1

你正在尋找的代碼是在Andrew Pitonyak's macro document,部分6.4. Clear a cell。請注意,該代碼適用於多個小區,以及:

REM可以使用一系列諸如「A1:B2」

宏錄製不學習如何編寫宏的好方法。它們生成調度程序代碼,這與使用UNO API不同。

+0

謝謝!大大地解釋,書籤它! :) –

相關問題