我想将数据从 mssql 数据库导入到我的 excel 电子表格中。使用参数一切正常。但我想在函数查询中使用单元格值:
例子:
select ROUND(dbo.fn_geteffort(3484, 'Project', 0, 1)/8,2)
我想使用 3484 的单元格值!
任何想法?
你的意思是值'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)"
您将不得不使用 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