如何创建可以调用以在列中查找匹配值的子?

时间:2016-10-22 20:24:53

标签: excel vba excel-vba

我仍然是VBA的菜鸟,所以如果我说它有点奇怪,我很抱歉。例如,我有一个电子表格,其中包含一个包含3列的音乐曲目库:曲目#,歌曲标题,歌手。我有一个“数据库”子,如果我运行它,它会询问用户的输入,如果他们想通过Track#,Title或Singer搜索。我有一个案例选择调用单独的子集来查找用户输入的匹配歌曲。因此,如果用户输入了曲目编号,则会调用该子曲目来查找匹配的标题和歌手。

但是,我不知道如何创建执行此操作的单独子,并且可以由数据库调用。谁能帮我吗? 这是我试图提出的,但我知道这是完全错误的,我不知道语法和逻辑设置:

g = new dagreD3.graphlib.Graph()
          .setGraph({})
          .setDefaultEdgeLabel(function() { return {}; });
var svg = d3.select("svg"),
            inner = svg.select("g");
            svgGroup = svg.append("g");
var render = new dagreD3.render();

        render(d3.select("svg g"), g);

        var zoom = d3.behavior.zoom().on("zoom", function() {
              inner.attr("transform", "translate(" + d3.event.translate + ")" +
                    "scale(" + d3.event.scale + ")");
              currentZoomScale = d3.event.scale;
              currentPosition = d3.event.translate;

            });
        svg.call(zoom);

1 个答案:

答案 0 :(得分:0)

我想你对结果而不是特定的Sub感兴趣,因此下面的代码...... 您的虚构数据库位于A,B和C列中。 E7,F7和G7接收输入,N7,O7和P7显示搜索结果。 在Sheet1上放置一个命令按钮,并在其Sub。

中键入以下代码
    Private Sub CommandButton1_Click()
    Range("N7:P20").ClearContents
    x = 7
    lastrow = Range("a10000").End(xlUp).Row

    If Not Range("E7") Then
        For i = 2 To lastrow
            If Cells(i, 1) = Range("E7") Then
               Range("N7") = Cells(i, 1)
               Range("O7") = Cells(i, 2)
               Range("P7") = Cells(i, 3)
            End If
        Next
    End If

    If Range("F7") <> "" Then
        For i = 2 To lastrow
            If Cells(i, 2) = Range("F7") Then
                Range("N7") = Cells(i, 1)
                Range("O7") = Cells(i, 2)
                Range("P7") = Cells(i, 3)
            End If
       Next
    End If

  If Range("G7") <> "" Then
        For i = 2 To lastrow
            If Cells(i, 3) = Range("G7") Then
                Cells(x, 14) = Cells(i, 1)
                Cells(x, 15) = Cells(i, 2)
                Cells(x, 16) = Cells(i, 3)
                x = x + 1
            End If    
        Next
  End If
  End Sub