我编写了一个Notepad ++宏,它将SQL查询转换为Vb字符串以粘贴到我的VB代码中。
校长是您可以按Ctrl
+ Shift
+ E
,宏应该转换SQL行等
SELECT a FROM b
至"SELECT a FROM b" & vbCrLf & _
,然后光标应移至下一行。
这就是我的宏看起来的样子:
<Macro name="VB Script" Ctrl="yes" Alt="no" Shift="yes" Key="69">
<Action type="0" message="2453" wParam="0" lParam="0" sParam="" />
<Action type="1" message="2170" wParam="0" lParam="0" sParam='"' />
<Action type="0" message="2451" wParam="0" lParam="0" sParam="" />
<Action type="1" message="2170" wParam="0" lParam="0" sParam='"' />
<Action type="1" message="2170" wParam="0" lParam="0" sParam=" " />
<Action type="1" message="2170" wParam="0" lParam="0" sParam="&" />
<Action type="1" message="2170" wParam="0" lParam="0" sParam=" " />
<Action type="1" message="2170" wParam="0" lParam="0" sParam="v" />
<Action type="1" message="2170" wParam="0" lParam="0" sParam="b" />
<Action type="1" message="2170" wParam="0" lParam="0" sParam="c" />
<Action type="1" message="2170" wParam="0" lParam="0" sParam="r" />
<Action type="1" message="2170" wParam="0" lParam="0" sParam="l" />
<Action type="1" message="2170" wParam="0" lParam="0" sParam="f" />
<Action type="1" message="2170" wParam="0" lParam="0" sParam=" " />
<Action type="1" message="2170" wParam="0" lParam="0" sParam="&" />
<Action type="1" message="2170" wParam="0" lParam="0" sParam=" " />
<Action type="1" message="2170" wParam="0" lParam="0" sParam="_" />
<Action type="0" message="2300" wParam="0" lParam="0" sParam="" />
</Macro>
我已经用几种不同的方式进行了检查,并确定此行将光标向下移动一行:
<Action type="0" message="2300" wParam="0" lParam="0" sParam="" />
问题是只在第一行执行整个宏并向下移动一行。但是之后的任何一条线都不会向下移动。
答案 0 :(得分:1)
关闭“自动完成”可以解决问题。
要关闭“自动完成”,请按照此处的说明进行操作:
当弹出自动完成菜单时,似乎NotePad ++会停止执行宏。
IE:宏执行所有代码,因为它会正确添加所有字母。然后当它需要激活Down Arrow
键时,它仍然执行代码,但是在弹出的下拉列表中,而不是光标所在的行。