仅允许数字作为CommandButton1_Click()的Application.InputBox的用户输入值

时间:2018-09-25 10:34:48

标签: excel vba excel-vba

我正在为一个烦人的可能性而苦苦挣扎,尽管只能允许整数,但用户可以插入小数/分数值。 我尝试使用KeyAscii(48-57)检查用户是否输入数字。但是,我无法使其正常运行,也无法与其他功能一起使用。 除了数字值(从0到9到最大99)之外,用户不能插入其他任何内容。这适用于我所附代码中的“ rowNum”。 我可以控制其他一切,但是按CommandButton_Click()后,我无法使VBA用于用户插入的十进制/分数值。 我已经尝试了许多小时,以找到成功的解决方案。感谢所有帮助!

file_name = "With_Comments_two.xlsx"
xl_file = pd.ExcelFile(file_name)
df=pd.read_excel(file_name,sheet_name="Sheet 1 - With_Comments")
file_name_two = "PythonExport.xlsx"
xl_file2 = pd.ExcelFile(file_name_two)
df2 = pd.read_excel(file_name_two,sheet_name="Sheet1")
col1 = list(df.iloc[:,[0]].itertuples())
col2 = list(df2.iloc[[0]].itertuples())
col3 = df2.iloc[: ,[1]]
temp=[]
for ii in col1.itertuples():
   for jj in col2.itertuples():
      if col1[ii]==col2[jj]
        temp.append(col1[ii])

2 个答案:

答案 0 :(得分:2)

声明为变量是一个问题,因为它将接受任何输入类型。如果改为将x和RowNum声明为整数,则可以避免此问题。

执行此操作会将所有小数点四舍五入为整数,并且文本将出现错误(类型13:不匹配),可以在错误处理程序中进行处理或跳过

答案 1 :(得分:2)

添加另一个elseif子句

ElseIf x <> Int(x) Then
       MsgBox "Fraction number is not  allowed", vbExclamation, "Invalid Input!"


End if

可以解决问题