我想将数据从mssql数据库导入到我的Excel电子表格中。一切都可以正常使用参数。但我想在函数查询中使用单元格值:
示例:
select ROUND(dbo.fn_geteffort(3484, 'Project', 0, 1)/8,2)
我想使用3484的单元格值!
有什么想法吗?
答案 0 :(得分: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)"
答案 1 :(得分: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