我正在编写一个快速的应用程序 - 第一个项目,但是我试图找到用于将输入字符串的结果写入Excel中的命名单元格的VBA代码。
例如,输入框询问问题“您要将哪个作业编号添加到列表中?”...然后,用户将输入参考编号,例如“FX1234356”。然后宏需要将该信息写入一个单元格,然后我可以用它来完成宏(基本上是在一些数据中搜索)。
答案 0 :(得分:10)
您可以使用VBA中的Range对象来设置命名单元格的值,就像任何其他单元格一样。
Range("C1").Value = Inputbox("Which job number would you like to add to the list?)
其中“C1”是您要更新的单元格的名称。
我的Excel VBA有点老旧,所以在较新版本的Excel中可能有更好的方法。
答案 1 :(得分:4)
我建议始终使用命名范围(正如您所建议的那样),因为如果添加或删除任何列或行,名称引用将更新,而如果您对单元格引用进行硬编码(例如“H1”为在VBA中的一个响应中建议,然后它将不会更新并指向错误的单元格。
所以
Range("RefNo") = InputBox("....")
比
更安全Range("H1") = InputBox("....")
您也可以设置几个单元格的值。
Range("Results").Resize(10,3) = arrResults()
其中arrResults是一个至少10行的数组& 3列(可以是任何类型)。如果你使用它,请把这个
Option Base 1
在VBA模块的顶部,否则VBA将假设数组从0开始并在工作表中放置一个空白的第一行和第一列。这一行使得所有数组从默认值开始为1(在大多数语言中可能都是异常的,但在电子表格中效果很好)。
答案 2 :(得分:1)
当要求用户使用InputBox method将响应放入单元格时,通常会发生三件事情¹。
如果要将返回值放入单元格中,您自己的逻辑流将决定您要对后两种情况做什么。您可能想要清除单元格,或者您可能希望单独保留单元格内容。以下是如何使用变量类型变量和Select Case statement来处理各种结果。
{{1}}
¹当使用特定类型的 InputBox method 时,有第四种情况。 InputBox可以返回公式,单元格范围错误或数组。这些是特殊情况,需要使用非常具体的语法选项。有关更多信息,请参阅提供的链接。
答案 3 :(得分:0)
我用包含TextBox的表单完成了这种事情。
因此,如果您想将其放入单元格H1
中,请使用:
ActiveSheet.Range("H1").Value = txtBoxName.Text