[英]Excel VBA script - InputBox Error
我正在嘗試創建一個VBA腳本,以便如果有人鍵入“ Size”,它將粘貼“ Size” 5次,如果他們鍵入“ SizeColor”,它將粘貼5個“ SizeColor”單元格。
另外,如果可以的話,如果用戶輸入“ Size”或“ 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
正確聲明變量。 您無法在VBA中進行隱式類型分配,因此:
Dim val, Size, SizeC As String
實際上表示:
Dim Val as Variant, Size as Variant, SizeC As String
。
無論如何,您都不需要變量Size
或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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.