我正在編寫一個快速應用程序 - 第一個項目,但是我試圖找到用於將輸入字符串的結果寫入Excel中的命名單元格的VBA代碼。VBA Excel宏將輸入整數寫入單元格
例如,一個輸入框提出問題「您想要將哪個工作號碼添加到列表中?」......然後用戶將輸入參考號碼,例如「FX1234356」。宏然後需要將這些信息寫入一個單元格中,然後我可以使用它來完成宏(基本上是在某些數據中進行搜索)。
我正在編寫一個快速應用程序 - 第一個項目,但是我試圖找到用於將輸入字符串的結果寫入Excel中的命名單元格的VBA代碼。VBA Excel宏將輸入整數寫入單元格
例如,一個輸入框提出問題「您想要將哪個工作號碼添加到列表中?」......然後用戶將輸入參考號碼,例如「FX1234356」。宏然後需要將這些信息寫入一個單元格中,然後我可以使用它來完成宏(基本上是在某些數據中進行搜索)。
您可以使用VBA中的Range對象設置命名單元格的值,就像任何其他單元格一樣。
Range("C1").Value = Inputbox("Which job number would you like to add to the list?)
其中「C1」是要更新的單元格的名稱。
我的Excel VBA有點老舊,所以在更新版本的Excel中可能會有更好的方法。
你剛剛打敗了我;) – JimmyJ 2008-11-02 19:34:41
我用一個包含TextBox的表單完成了這種事情。
所以,如果你想要把這個說細胞H1
,然後使用:
ActiveSheet.Range("H1").Value = txtBoxName.Text
我建議總是使用已命名範圍(如你建議你在做),因爲如果任何列或行被添加或刪除時,名稱引用將更新,而如果您在VBA中硬編碼單元格引用(例如,其中一個響應中建議的「H1」),則它不會更新並且將指向錯誤的單元格。
所以
Range("RefNo") = InputBox("....")
是較安全
Range("H1") = InputBox("....")
您可以設置多個單元格的值了。
Range("Results").Resize(10,3) = arrResults()
其中arrResults是至少10行& 3列(並且可以是任何類型的)的陣列。如果你用這個,把這個
Option Base 1
在VBA模塊的頂部,否則VBA將承擔數組從0開始,把空白的第一行和列的表。此行使所有數組從默認開始(這在大多數語言中可能不正常,但對電子表格很適用)。
當要求用戶使用InputBox method放入單元格的響應時,通常會發生三件事情可能發生¹。
如果您將返回值放入一個單元格中,您自己的邏輯流將決定您想要對後兩種情況執行什麼操作。您可能想要清除單元格,或者您可能想要單獨保留單元格內容。以下是如何處理變量類型變量和Select Case statement的各種結果。
Dim returnVal As Variant
returnVal = InputBox(Prompt:="Type a value:", Title:="Test Data")
'if the user clicked Cancel, Close or Esc the False
'is translated to the variant as a vbNullString
Select Case True
Case Len(returnVal) = 0
'no value but user clicked OK - clear the target cell
Range("A2").ClearContents
Case Else
'returned a value with OK, save it
Range("A2") = returnVal
End Select
¹有當使用的InputBox method特定類型的第四方案。一個InputBox可以返回一個公式,單元格範圍錯誤或數組。這些是特殊情況,需要使用非常特定的語法選項。請參閱提供的鏈接瞭解更多信息
問題標題具有誤導性。你的輸入不是一個整數。 – 2008-11-02 19:37:16