Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于VBA中的循环_Vba_Excel - Fatal编程技术网

用于VBA中的循环

用于VBA中的循环,vba,excel,Vba,Excel,我有一张类似的桌子: 我想用它在SQLServer中执行一些操作。如何创建VBA代码(更准确地说,是循环代码)以获得一个类似以下内容的字符串: sql = "select @Name = 'BookA', @price = col next to BookA where date in col D = cell("D1"); select @Name = 'BookB', @price = col next to BookB where date in col F = c

我有一张类似的桌子:

我想用它在SQLServer中执行一些操作。如何创建VBA代码(更准确地说,是循环代码)以获得一个类似以下内容的字符串:

  sql = "select @Name = 'BookA', @price = col next to BookA where date in col D = cell("D1");
         select @Name = 'BookB', @price = col next to BookB where date in col F = cell("D1");..."
例如,假设单元格中的日期(“D1”)=“01.10.2015”

sql
应等于

"select @Name = 'BookA', @price = 101.651; select @Name = 'BookB', @price = 96.291; and so on"

将此程序放在标准代码模块中:

Public Sub GenSQL()
    Dim i&, j&, sql$, v, k
    k = [d1].Value
    v = [d3].CurrentRegion
    For j = 1 To UBound(v, 2) Step 2
        For i = 1 To UBound(v)
            If v(i, j) = k Then
                sql = sql & " select @Name = '" & v(1, j) & "', @price = " & v(i, j + 1) & ";"
            End If
        Next
    Next
    sql = Mid$(sql, 2)
    MsgBox sql
End Sub

请看。我的解决方案对你有效吗?@ExcelHero,是的,有效。谢谢