0

我想将数据从 mssql 数据库导入到我的 excel 电子表格中。使用参数一切正常。但我想在函数查询中使用单元格值:

例子:

select ROUND(dbo.fn_geteffort(3484, 'Project', 0, 1)/8,2) 

我想使用 3484 的单元格值!

任何想法?

4

2 回答 2

1

你的意思是值'3484'在一个单元格中,你想将它包含在你的查询字符串中?

然后:

s = "select ROUND(dbo.fn_geteffort(" & Sheet.Cells(RowNumber, ColumnNumber) & ", 'Project', 0, 1)/8,2)"

或者:

s = "select ROUND(dbo.fn_geteffort(" & Sheet.Range("A1").Value & ", 'Project', 0, 1)/8,2)"
于 2013-07-11T07:25:53.817 回答
0

您将不得不使用 VBA 脚本更改您的查询。

Worksheets("sheet_with_table").ListObjects(1).QueryTable.CommandText = "select ROUND(dbo.fn_geteffort(" & Worksheets("status").Range("D5").Value & ", 'Project', 0, 1)/8,2)"

如果您希望在更改状态时更新查询!D5,请在状态工作表事件更改中发布以下代码

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Me.Range("D5")) Is Nothing Then
        Worksheets("sheet_with_table").ListObjects(1).QueryTable.CommandText = "select ROUND(dbo.fn_geteffort(" & Worksheets("status").Range("D5").Value & ", 'Project', 0, 1)/8,2)"
    End If
End Sub
于 2013-07-11T08:40:36.303 回答