繁体   English   中英

Excel-VBA用户表单文本输入

[英]Excel-VBA User form text entry

我正在尝试为用户提供一个供用户输入文本的用户窗体,该文本将设置为工作表名称。 因为工作表名称不能超过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使用F8控件给我“对象变量或未设置块变量”错误。 :(

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

我弄清楚了,我错过了这个部分,输入了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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM