Excel VBA脚本 – InputBox错误

我试图创build一个VBA脚本,以便如果有人键入“大小”它将粘贴“大小”5倍,如果他们键入“SizeColor”它将粘贴5“SizeColor”单元格。

另外如果可能的话,如果我可以得到类似的东西,如果用户input除“大小”或“SizeColor”以外的任何东西,那么他们会收到一条消息,说他们不能这样做。

Sub SizeAndColor() Dim val, Size, SizeC As String Size = "Size" SizeC = "SizeColor" val = InputBox("Size or SizeColor?", "Options") If val = "Size" Then ActiveCell.Offset(0, 122).Select ActiveCell.Value = Size ActiveCell.Offset(1, 0).Select ActiveCell.Value = Size ActiveCell.Offset(1, 0).Select ActiveCell.Value = Size ActiveCell.Offset(1, 0).Select ActiveCell.Value = Size ActiveCell.Offset(1, 0).Select ActiveCell.Value = Size ActiveCell.Offset(5, -122).Select Else: val = "SizeColor" ActiveCell.Offset(0, 122).Select ActiveCell.Value = SizeC ActiveCell.Offset(1, 0).Select ActiveCell.Value = SizeC ActiveCell.Offset(1, 0).Select ActiveCell.Value = SizeC ActiveCell.Offset(1, 0).Select ActiveCell.Value = SizeC ActiveCell.Offset(1, 0).Select ActiveCell.Value = SizeC ActiveCell.Offset(5, -122).Select End If End Sub 

正确声明你的variables。 你不能在VBA中做隐式的types赋值,所以:

Dim val, Size, SizeC As String实际上是指:

Dim Val as Variant, Size as Variant, SizeC As String

无论如何,你不需要variablesSize或者SizeC ,所以我们来试试这个:

 Sub SizeAndColor() Dim val As String 'Input box value Dim cl As Range Set cl = ActiveCell TryAgain: val = InputBox("Size or SizeColor?", "Options") Select Case LCase(val) 'Assuming you don't care about case sensitivity, SIZE = size, etc. Case "size", "sizecolor" '## Put the values 122 columns to the right, and 5 rows down cl.Offset(0, 122).Resize(5, 1).Value = val cl.Select Case Else 'Do NOT allow any other inputs: If MsgBox("You have entered an invalid input. Please input only 'Size' or 'SizeColor'. Try again?", vbYesNo) = vbYes Then GoTo TryAgain Else: Exit Sub End If End Select End Sub