我正在处理一个宏,该宏将允许我将SQL查询键入(或更可能将其粘贴)到InputBox
中,然后单击“确定”,它针对查询返回查询结果。数据库。问题在于,默认情况下,VBA仅接受一行文本,并且SQL代码以更具结构性的多行格式编写,以提高可读性。当我尝试将SQL代码粘贴到InputBox
时,除第一行以外的所有内容都将被截断。我的下一个想法是在显示InputBox并提示我输入查询之前,先读取剪贴板的内容并用空格替换所有换行符,但显然这对我输入而不是粘贴的查询无济于事。任何帮助将不胜感激!
答案 0 :(得分:1)
我不相信您可以在InputBox中执行此操作。 InputBox通常用于较小的输入,例如数字或单词。此外,在InputBox中键入时按下enter
会提交它,因此,如果您可以添加多行,将会造成混乱。
您可以做的是创建一个新的UserForm,并添加一个MultiLine
字段设置为True
的TextBox。然后,只需添加一个“确定”按钮即可关闭表单,然后从文本框中读取宏。
作为另一种选择,这是我用来获取用户剪贴板上当前任何文本的函数。因此,您可以先复制查询,然后再运行需要使用它的任何宏。
Function copyFromClipboard() As String
Dim clipboard As MSForms.DataObject
Set clipboard = New MSForms.DataObject
clipboard.GetFromClipboard
copyFromClipboard = clipboard.getText
End Function
它需要引用Microsoft Forms 2.0 Object Library