Excel VBA UserForm – 如果不是空的那么

我正在制作一个用户表单,要求用户input。

有很多的投入,但我有一个特别的问题。 如果用户在文本框(名为SecondCompetitor)中inputANYTHING,我希望函数将一些值放入我的一个Excel工作表(名为ws4)中。

这是我写的代码:

With ws3 If Not IsEmpty(Me.SecondCompetitor.Value) Then .Cells(iRow3, 14).Value = Me.Ticker.Value .Cells(iRow3, 2).Value = Me.Rec1.Value .Cells(iRow3, 3).Value = Me.Rec2.Value .Cells(iRow3, 4).Value = Me.Rec3.Value .Cells(iRow3, 5).Value = Me.Rec4.Value .Cells(iRow3, 6).Value = Me.Rec5.Value .Cells(iRow3, 7).Value = Me.Rec6.Value .Cells(iRow3, 8).Value = Me.Rec7.Value .Cells(iRow3, 9).Value = Me.Rec8.Value .Cells(iRow3, 10).Value = Me.Rec9.Value .Cells(iRow3, 15).Value = Me.FirstCompetitor.Value .Cells(iRow3, 17).Value = Me.SecondCompetitor.Value .Cells(iRow3, 19).Value = Me.Winner.Value .Cells(iRow3, 20).Value = Me.Exploration.Value .Cells(iRow3, 21).Value = Me.DateAdded.Value End If End With 

当我真正执行代码时,值被放置在无论用户是否已经input任何东西到SecondCompetitor文本框的行中。

有什么问题可能是什么build议?

IsEmpty用于数组。 使用下面的:

 With ws3 If Not Me.SecondCompetitor.Value = "" Then 'This line could also be Me.SecondCompetitor.Value = vbNullString .Cells(iRow3, 14).Value = Me.Ticker.Value .Cells(iRow3, 2).Value = Me.Rec1.Value .Cells(iRow3, 3).Value = Me.Rec2.Value .Cells(iRow3, 4).Value = Me.Rec3.Value .Cells(iRow3, 5).Value = Me.Rec4.Value .Cells(iRow3, 6).Value = Me.Rec5.Value .Cells(iRow3, 7).Value = Me.Rec6.Value .Cells(iRow3, 8).Value = Me.Rec7.Value .Cells(iRow3, 9).Value = Me.Rec8.Value .Cells(iRow3, 10).Value = Me.Rec9.Value .Cells(iRow3, 15).Value = Me.FirstCompetitor.Value .Cells(iRow3, 17).Value = Me.SecondCompetitor.Value .Cells(iRow3, 19).Value = Me.Winner.Value .Cells(iRow3, 20).Value = Me.Exploration.Value .Cells(iRow3, 21).Value = Me.DateAdded.Value End If End With