Excel-VBA用户表单文本条目

时间:2017-08-01 11:24:31

标签: excel vba excel-vba reference

我正在尝试为用户创建用户表单以输入文本,该文本将设置为工作表名称。因为工作表名称不能超过30个字符,我想添加一个警告。但在宏观中,它给了我一个错误。

我正在检查这个场景;

首先,我写的名字超过30个字符。 它给了我写的错误。 (很棒) 然后再次把我带到输入屏幕(这很棒) 然后我写了正确的名字(短于30个字符。) 它给了我运行时错误' 1004;应用程序定义或对象定义的错误。

代码是这样的;

Yeni_Sheet_Adi_Olustur.Show

If Yeni_Sheet_Adi_Olustur.Yeni_Sheet = "" Then
    MsgBox "Lütfen Sheet adi seçiniz"
    GoTo son

ElseIf Len(Yeni_Sheet_Adi_Olustur.Yeni_Sheet) > 30 Then
MsgBox "Sheet adi 30 karakterden kisa olmalidir"
Yeni_Sheet_Adi_Olustur.Show

Else
Yeni_Sheet = CStr(Yeni_Sheet_Adi_Olustur.Yeni_Sheet.Value)
End If

Yeni_Sheet_Adi_Olustur.Yeni_Sheet给我"对象变量或With block变量未设置" F8控制错误。 :(

我愿意接受任何建议。非常感谢你。

1 个答案:

答案 0 :(得分:0)

我想通了,我错过了那个部分,在输入更长的30个字符之后会发生什么,所以我添加了一个“GoTo”代码。现在它看起来像这样并且效果很好;

Son1:
Yeni_Sheet_Adi_Olustur.Show

If Yeni_Sheet_Adi_Olustur.Yeni_Sheet = "" Then
    MsgBox "Lütfen Sheet adi seçiniz"
    GoTo son

ElseIf Len(Yeni_Sheet_Adi_Olustur.Yeni_Sheet) > 30 Then
MsgBox "Sheet adi 30 karakterden kisa olmalidir"
Yeni_Sheet_Adi_Olustur.Hide
GoTo Son1

Else
Yeni_Sheet = CStr(Yeni_Sheet_Adi_Olustur.Yeni_Sheet.Value)
End If