Excel 如何使用VBA在特定行打开和显示文本文件?
我有一个VBA用户表单,可以在TextPad中打开文本文件,其中包含以下内容:Excel 如何使用VBA在特定行打开和显示文本文件?,excel,vba,textpad,Excel,Vba,Textpad,我有一个VBA用户表单,可以在TextPad中打开文本文件,其中包含以下内容: Call Shell("C:\Program Files\TextPad 5\TextPad.exe " & "C:\testfile.txt", vbNormalFocus) 我希望文本文件以特定行号显示 是否有方法将行号作为参数传递给此Shell调用?您可以使用WScript.Shell.SendKeys在TextPad(ctrl-G)中触发转到行快捷方式来完成此操作 为了添加或删除命令之间的延迟,您可
Call Shell("C:\Program Files\TextPad 5\TextPad.exe " & "C:\testfile.txt", vbNormalFocus)
我希望文本文件以特定行号显示
是否有方法将行号作为参数传递给此Shell调用?您可以使用WScript.Shell.SendKeys在TextPad(ctrl-G)中触发转到行快捷方式来完成此操作 为了添加或删除命令之间的延迟,您可能不得不打乱等待线,但我在Excel中的VBA模块中测试了这一点,它成功了
我知道SendKeys可以直接从VBA调用,但当我尝试使用它时,它似乎绑定到VBA编辑器窗口 您可以使用WScript.Shell.SendKeys在TextPad(ctrl-G)中触发转到行快捷方式来完成此操作 为了添加或删除命令之间的延迟,您可能不得不打乱等待线,但我在Excel中的VBA模块中测试了这一点,它成功了
我知道SendKeys可以直接从VBA调用,但当我尝试使用它时,它似乎绑定到VBA编辑器窗口 您也可以使用“-n”参数调用notepad++以获得相同的效果
如果在命令执行过程中切换屏幕或出现弹出窗口,则发送按键(特别是延迟键)可能是一件危险的事情。您可能会丢失数据或在其他应用程序中不小心执行危险操作。您也可以使用“-n”参数调用notepad++以获得相同效果
如果在执行命令时切换屏幕或出现弹出窗口,发送按键(特别是延迟键)可能是一件危险的事情,您可能会丢失数据或在其他应用程序中不小心执行危险操作。哇,这太棒了!我很高兴看到这个方法比我要求的更灵活,因为它将更容易让我使用TextPad查找工具获得正确的行。哇,这太棒了!我很高兴看到这个方法比我要求的更灵活,因为它将更容易让我使用TextPad查找工具获得正确的行。
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