vba- if循环中的if语句

时间:2017-01-06 17:40:48

标签: vba access-vba

我想添加以下内容删除包含0

的行
    If Cells(intFile, "CU") = "0" Then           
        Sheet1.Rows(r).EntireRow.Delete    
    End If    

到我的代码下面。

   If CDate(rst(3)) >= Date Then

       For intCount = 0 To rst.Fields.Count - 1
           strHold = strHold & rst(intCount).Value & "|"

目前在'细胞'上ElseIf Cells(intFile, "CU") = "0" Then 我收到编译错误:sub或函数未定义。 我该怎么做而不是Cells

我的参考:https://msdn.microsoft.com/en-us/library/752y8abs.aspx

1 个答案:

答案 0 :(得分:2)

这里的问题是Visual Basic有很多“风味”,它们不可互换。

您的应用程序在MSAccess中运行,它将具有特定适用于该环境的某些对象,功能等。 Cells对象特别适用于MS Excel环境,因此Access VBA不了解Cells对象是什么。

(你提到的文档是关于VB.Net的语法 - 但你所看到的的特定主题在所有这些不同版本的“Visual Basic”中都是一样的。但是从该网页看来,Then语句中的If是VB.Net中的可选关键字,而在VBA中是必需的,所以即使是这样的基本编码也存在一个区别。)

如果您从

更改代码
If CDate(rst(3)) >= Date Then
ElseIf Cells(intFile, "CU") = "0" Then
    Sheet1.Rows(r).EntireRow.Delete

If CDate(rst(3)) >= Date And rst(98) <> 0 Then

我相信你会做你打算做的事情,即排除第4个字段(由于零基础3)在今天之前的所有记录,并且还排除第99个字段为0的所有记录