0

我目前正在使用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%

  • 雪城 - 地点 - 33%

  • 宾厄姆顿 - 地点 - 45%

  • 奥尔巴尼 - 不在位置 - 50%

    (希望您了解格式,因为我无法添加图像)

4

1 回答 1

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 列的值。

于 2013-10-04T12:14:12.957 回答