读取userform标签中的文本并添加到工作表中

时间:2013-07-12 11:55:28

标签: excel-vba label userform vba excel

这是我第一次发帖,所以如果我搞砸了任何论坛礼仪,请告诉我!

我有一个userform,其中包含一个标签,两个组合框和按钮。标签的文本设置在sub中,并且是描述游戏的文本。我要求用户从两个组合框中选择两个裁判来阻止这个游戏的裁判。按钮是“下一个游戏”按钮。当用户点击“下一个游戏”按钮时,我将两个裁判员匹配到“裁判员”工作表上的名单列表。然后我希望能够使用标签中的文字(说明它是哪个游戏)并将其粘贴在与裁判员名字相邻的第一个空行中。代码位于“下一个游戏”按钮的“单击按钮”事件中。我目前收到运行时错误'1004'。

Private Sub nextGameBtn_Click()

Dim ump1 As String
Dim ump2 As String
Dim endRow As Long
Dim ump1Row As Range
Dim ump2Row As Range
Dim ump1EndColumn As Long
Dim ump2EndColumn As Long
Dim game As String

ump1 = selectUmpsForm.ComboBox1.Value
ump2 = selectUmpsForm.ComboBox2.Value

endRow = Worksheets("Umpires").Cells(Rows.Count, 1).End(xlUp).Row


Set ump1Row = Worksheets("Umpires").Range("A2:A" & endRow).Find(What:=ump1, LookIn:=xlValues, LookAt:=xlWhole)

ump1EndColumn = Worksheets("Umpires").Range("IV" & ump1Row.Row).End(xlToLeft).Column + 1


Set ump2Row = Worksheets("Umpires").Range("A2:A" & endRow).Find(What:=ump2, LookIn:=xlValues, LookAt:=xlWhole)

ump2EndColumn = Worksheets("Umpires").Range("IV" & ump2Row.Row).End(xlToLeft).Column + 1

game = selectUmpsForm.lblGame.Caption

Worksheets("Umpires").Range(Cells(ump1Row.Row, ump1EndColumn), Cells(ump2Row.Row, ump2EndColumn)).Value = game


gameCount = gameCount + 1
Call displayBox(gameCount)

End Sub

行上发生运行时错误:

Worksheets("Umpires").Range(Cells(ump1Row.Row, ump1EndColumn), Cells(ump2Row.Row, ump2EndColumn)).Value = game

如果有一个地方我可以阅读标签文本而无需返回创建它的源?这是我运行时错误的原因吗?

任何建议将不胜感激。 干杯 IM

1 个答案:

答案 0 :(得分:0)

我不认为这与标签有关。当Cells()中的一个值为零时,可能会发生运行时错误1004。

你检查过ump2EndColumn等的值吗?您是否确定您尝试写入的单元都没有写保护?

尝试使用F8逐步调试,并尝试简化语句以隔离错误,例如

Worksheets("Umpires").Range(Cells(2, 2), Cells(3, 3)).Value = game
Worksheets("Umpires").Range(Cells(ump1Row.Row, ump1EndColumn), Cells(ump2Row.Row, ump2EndColumn)).Value = "test"

希望这有帮助!