我正在使用Office 2010中的插件。在顶部,有一个带有行号和列号的框,例如:
Ln 1480, Col 17
有没有一种方法可以在代码编辑中(而不是在执行中)直接跳转到另一个行号,就像我在记事本中使用Ctrl+G
一样?This MSDN answer建议这是不可能的,但我希望有人已经找到了一种方法来做这种编辑器导航。
我知道可以在bug中单击一个过程名,但不幸的是,我正在处理一些长达数百行的过程,在我重构它们之前,如果能够在bug跟踪器中包含一个行号并在解决问题时跳转到该行,那就太好了。
6条答案
按热度按时间bbuxkriu1#
为IDE创建您自己的JumpToLine过程
创建一个名为
mdlJumpToLine
的新模块,并添加以下方法:举个例子,如果你想跳到你 * 在当前代码窗格 * 中打开的代码模块或类中的第1,234行,在即时窗口中输入
JumpToLine 1234
,然后按回车键。* 如果该行已在视图中,则不执行任何操作,但如果该行不在屏幕上,则会自动滚动到屏幕中心 *信任对项目对象模型的访问
如果你得到这个错误,“方法'VBE'的对象'_Application'失败”,你将不得不使编程访问VBE信任。您可以通过(在Excel 2007中)转到主Excel窗口(而不是IDE)并单击“文件”->“选项”->“信任中心”->“信任中心设置”->“宏设置”并选中“信任对Excel项目对象模型的访问”复选框来执行此操作。从那时起,JumpToLine方法就可以工作了。
6za6bjd02#
不知道。您可以使用编辑工具栏中的书签。如果您的编辑工具栏未显示,请转到视图下拉菜单,选择“工具栏”,然后选择“编辑”。
书签工具位于菜单右侧。
这将允许您在代码中的任何位置放置书签。然后,您可以通过点击向前或向后的书签箭头在它们之间移动。
nfg76nw03#
这个过程将提示您输入一个行号,然后(有点)将您带到您已经在其中的任何过程的该行。两件事:这里没有错误检查,所以它需要一些工作;如果你输入一个大于总行数的数字,它只会把你带到下一个过程。但是如果你输入,比如30,它会把你带到当前过程的第30行,而不仅仅是模块的第30行。
thigvfpy4#
如果您需要它来帮助跟踪bug,为什么不使用后藤标签呢?
我敢打赌,你的bug跟踪工具会给你一个bug的ID或类似的东西。只需找到bug所在的部分并添加一行即可:
这一行在执行时会被忽略,您可以使用Ctrl+F并搜索标签名称来找到它。
好处是,如果你重构或更改代码中的任何内容,引用将保持有效,而如果你只是使用行号,任何修改都会使引用无效。
holgip5t5#
要做到这一点,唯一的方法是在代码中物理标记行。这有点痛苦,但你可以通过使用以下代码来添加它们:
然后你必须添加一个函数来跳转到你需要到达的任何一行:
来源:http://www.mrexcel.com/forum/excel-questions/576449-code-line-numbers-visual-basic-applications.html
wsxa1bj16#
Dick的解决方案非常出色,但这个版本可以从即时窗口调用。