代码之家  ›  专栏  ›  技术社区  ›  KarolDepka

excel中vba中数据库查询结果的迭代

  •  0
  • KarolDepka  · 技术社区  · 14 年前

    我想打开一个连接到SQL数据库,然后有权访问个别单元格。我有一个使用PivotTableWizard的示例(如下所示)。我想知道一种方法,不必做任何数据透视表-我想一个单元一个单元迭代。或者这个PivotTableWizard也适用于此目的?

    这个例子提到:

    ConnectionString = "Driver={SQL Server};Server=Serversql11;Persist Security Info=False;Integrated Security=SSPI;Database=DB_IC;"
    
    PivotName = "Talks"
    
    QArray = Array(ConnectionString, _
    "exec dbo.talksReport '" & CStr(param_date) & "'")
    
    Worksheets("Talks").PivotTableWizard xlExternal, QArray, Worksheets("Talks").Range("A1"), PivotName
    

    /卡罗尔

    1 回复  |  直到 14 年前
        1
  •  0
  •   Ben McCormack    14 年前

    如果要逐单元格迭代,可以执行以下操作:

    Sub PrintCellContentsToDebugWindow()
      Dim ws As Worksheet
      Dim rng As Range
      Dim intCounterRow As Integer
      Dim intCounterCol As Integer
      Dim intMaxRow As Integer
      Dim intMaxCol As Integer
    
      Set ws = ActiveSheet   'OR   '
      'Set ws = ActiveWorkbook.Sheets("Sheet1")   '
    
      intCounterRow = 1
      intCounterCol = 1
      intMaxRow = 100
      intMaxCol = 25
    
      Do While intCounterCol <= intMaxCol
        intCounterRow = 1
        Do While intCounterRow <= intMaxRow
          Set rng = ws.Cells(intCounterRow, intCounterCol)
          Debug.Print rng.Address & "    " & rng.Value
    
          intCounterRow = intCounterRow + 1
        Loop
        intCounterCol = intCounterCol + 1
      Loop
    
    End Sub
    

    上面的代码遍历前100行和前25列,并在visualbasic编辑器的Debug窗口中打印出单元格地址及其值。