enter image description here我们正在尝试编写一个代码,在给定站点名称(列)和SKU(行)的情况下,生成的单元格的值将显示在文本框中。我们已经达到了我们拥有细胞数量的程度,即。 E16,但我们无法弄清楚如何将E16的值打印到文本框中。最后一行中的txtPrice.value应该是在文本框中发布的内容,但它一直是空的
Private Sub btnGO_Click()
Dim rowNum, cellNum As Variant
rowNum = Application.WorksheetFunction.Match(txtSKU.Value,
Worksheets("AllSites").Range("B:B"), 0)
If IsError(rowNum) Then MsgBox "SKU not found": Exit Sub
If cbxSite.Value = "Fairburn" Then
cellNum = "C" & rowNum
ElseIf cbxSite.Value = "Aberdeen" Then
cellNum = "D" & rowNum
ElseIf cbxSite.Value = "University Park" Then
cellNum = "E" & rowNum
ElseIf cbxSite.Value = "Roanoke" Then
cellNum = "F" & rowNum
ElseIf cbxSite.Value = "Lathrop" Then
cellNum = "G" & rowNum
Else: cbxSite.Value = "Redlands"
cellNum = "H" & rowNum
If IsError(cellNum) Then MsgBox "Site not found": Exit Sub
txtPrice.Value = Worksheets("AllSites").Cells(cellNum).Value
End If
End Sub
答案 0 :(得分:1)
您正在尝试使用Cells("H6").Value
之类的内容。它应该是.Range("H6").Value
。
'where cellNum is a string something like "H6"
txtPrice.Value = Worksheets("AllSites").Range(cellNum).Value
答案 1 :(得分:0)
试试这个:
Textbox.Text = Worksheets("AllSites").Cells(cellNum).Value
答案 2 :(得分:0)
问题在于If
语句的结构。您的End If
声明位置错误。这导致Excel在您的Else
语句后插入冒号。使用冒号是一种将两个语句放在同一行上的方法。因此,如果没有其他If
&满足ElseIf
个条件,然后此语句cellNum = "H" & rowNum
将始终执行,并可能将cellNum指向空白单元格。
即使满足其他If
条件之一,代码也会跳过设置文本框值的部分,因为Else:
和End If
之间的所有内容都是{{}的一部分1}}子句因此,如果任何其他Else:
条件评估为True,则不会执行这些语句。
因此,您需要将If
条件更改为antoher Else:
并将ElseIf
语句移至该块下方。
此外,您需要将End If
更改为.Cells
,而其他人已在此处注明。
.Range