如何将单元格与包含数字的变量进行比较? (VBA)

时间:2015-03-12 16:43:58

标签: excel excel-vba vba

我在Excel中有我从其他列填充的列。我使用子句``WHERE`

查找具体的那些
  • 我的专栏[期间]可以是0,1,2或3。
  • 我选择其中一个使用从0到3的计数器j,但是当我这样做[Period]= j时,它不起作用。

这是我的原始代码:

For j = 0 To 3
    For i = 1 To iMax
    If Worksheets("Results").Cells(i, 1) = "Extraction" And Worksheets("Results").Cells(i, 2) = "IDK" And Worksheets("Results").Cells(i, 3) = "DAOUI" Then
        Compteur = i
        Set RecT = gConnect.Execute("SELECT Sum([Volume]) FROM [Output$] WHERE ([Entity]=""TREATMENT FACILITIES"" AND [Period]= j) ;")

所以我尝试将j转换为字符串,在我的循环之前使用k = CStr(j),然后使用[Period]=k,但仍然无法正常工作。

请注意,当我使用[Period]=0时,它的效果非常好。该错误特别在j ..

附近

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

你的" j"不得在引号中,因为它是一个变量。查询正在阅读" j"作为字母" j"之前。

For j = 0 To 3
    For i = 1 To iMax
    If Worksheets("Results").Cells(i, 1) = "Extraction" And Worksheets("Results").Cells(i, 2) = "IDK" And Worksheets("Results").Cells(i, 3) = "DAOUI" Then
        Compteur = i
        Set RecT = gConnect.Execute("SELECT Sum([Volume]) FROM [Output$] WHERE ([Entity]=""TREATMENT FACILITIES"" AND [Period]= " & j & ") ;")