vb输出匹配excel列

时间:2013-10-03 21:02:58

标签: excel excel-vba vba

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

    (希望你能理解形态,因为我无法添加图像)

1 个答案:

答案 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的值。