2013-05-14 34 views
0

我有一個VBA用戶窗體,在TextPad中打開關聯的文本文件很方便。我可以通過以下方式實現此目的:如何在VBA的特定行打開和顯示文本文件

Call Shell("C:\Program Files\TextPad 5\TextPad.exe " & "C:\testfile.txt", vbNormalFocus) 

但是,我真的希望將文本文件顯示在特定的行號上。有沒有辦法將行號作爲參數傳遞給此Shell調用?我在這裏不知所措。

回答

1

可以使用WScript.Shell.SendKeys觸發內TextPad goto語句線快捷實現這一點(CTRL-G)

Dim wshshell 
Set wshshell = CreateObject("WScript.Shell") 

Call Shell("C:\Program Files\TextPad 5\TextPad.exe " & "C:\testfile.txt", vbNormalFocus) 
Application.Wait (10) 
wshshell.SendKeys "^g"  'ctrl-G 
Application.Wait (10) 
wshshell.SendKeys "15"  'desired line number 
Application.Wait (10) 
wshshell.SendKeys "{ENTER}" 'enter 

您可能需要與等待線亂七八糟的添加或刪除命令之間的延遲,但是我在Excel的VBA模塊中測試了它,並且它工作正常。

我知道SendKeys可以直接從VBA調用,但是當我嘗試使用它時,它似乎被綁定到vba編輯器窗口。

+0

哇,這太棒了!我很高興看到這種方法比我所要求的更具靈活性,因爲使用TextPad Find工具可以更容易地獲得正確的內容。 – Excellll 2013-05-14 20:55:52

相關問題