我目前正在使用 Microsoft Visual Basic 2010 * (VBA) *和 Microsoft Excel 2010 ,为用户创建界面选择他们的位置,然后选择他们希望获得信息的设备,以换取设备信息的输出(用法等)我一直在寻找的问题还有一个答案,让我找到需要继续的VB代码。我有一个输入框,要求用户输入他们的设备(这是一个字符串),这个想法是这样的:
If chkCapacity.Checked = True Then
lblOutput.Text = "This is the Capacity for " & cmbLocation.SelectedItem & " " & strdevice
lstResults.Items.Add(cmbLocation.SelectedItem)
lstResults.Items.Add("Device_Capacity")
End If
我希望能够在Excel中调用匹配的信息,包括位置,设备,以及他们想要的最终结果。已有Excel列用于位置,设备和容量。我希望我明白这一点。 (将所选设备和所选位置与excel值匹配,返回所需的设备信息)显然我不能这样做:
Dim Sheet_Device_Capacity As String
Sheet_Device_Capacity = exSheet.Range("s2:s75").Value.ToString
因为我试图匹配设备列和位置而不仅仅是容量列。
我的电子表格如下所示:
PoP设备1容量
罗切斯特 - 不在位置 - 42%
Syracuse - 位置 - 33%
Binghamton - 位置 - 45%
奥尔巴尼 - 不在位置 - 50%
(希望你能理解形态,因为我无法添加图像)
答案 0 :(得分:0)
一个相当简单的循环,通过您的信息寻找匹配应该足够了。例如,
Dim mylocation
Dim mydevice
Dim myinfo
Dim index As Long
Dim lastrow As Long
lastrow = Cells(Rows.Count, "A").End(xlUp).Row
'assuming location in column A,
'device in column B,
'info in column C
With ActiveSheet
For index = 2 To lastrow
If .Cells(index, 1).Value = mylocation And _
.Cells(index, 2).Value = mydevice Then
myinfo = .Cells(a, 3)
Next index
End With
这将查找匹配项,并返回列C的值。