(预期表达式)vba 错误

Posted

技术标签:

【中文标题】(预期表达式)vba 错误【英文标题】:(expected expression) vba error 【发布时间】:2018-07-27 15:51:31 【问题描述】:

所以基本上我的代码是这样的:

Sub clor2()

For j = 0 To 10    
  For i = 0 To 10    
  if i mod = 0 and and j mod=0 then    
    [D2].Offset(j, i).Interior.ColorIndex = 37       
 Else    
[D2].Offset(j, i).Interior.ColorIndex = 36    
End If        
  Next i    
  Next j        
End Sub

【问题讨论】:

你有两次。 Vityata 的正确答案如下。我只是想解释一下他们做了什么来修复它。 你刚刚看到了,谢谢。 也不做任何修改 除非那是你永远不会再看的一次性代码,否则你会想要properly and consistently indent it。 【参考方案1】:

mod 运算符像这样使用5 mod 2 = 16 mod 2 = 0.VBA equivalent to Excel's mod function。

因此,条件应该是i Mod SomeNumber = 0

Option Explicit

Sub clor2()
    Dim j As Long, i As Long

    For j = 0 To 10
        For i = 0 To 10
            If i Mod 3 = 0 And j Mod 7 = 0 Then
                [D2].Offset(j, i).Interior.ColorIndex = 37
            Else
                [D2].Offset(j, i).Interior.ColorIndex = 36
            End If
        Next i
    Next j    

End Sub

Option Explicit 在 VBA 中也是一个很好的实践——因此你的变量 ij 应该被声明。 - VBA: problems with defining variables in function if Option Explicit is used

【讨论】:

我的代码有什么问题?我没有看到任何差异,但 urs 工作 如果我 Mod = 3 之后,你有两个词 And in there 两次 @tehcoder - 我已经更新了。一般来说,无论何时寻找两个相似文本之间的差异,您都可以使用一些差异检查器。在线查看这个 - diffchecker.com

以上是关于(预期表达式)vba 错误的主要内容,如果未能解决你的问题,请参考以下文章

在 .NET 中模拟 VBA 算法

查询表达式中的语法错误(缺少运算符) - VBA

正则表达式模式选择正确的子字符串,但在运行宏 vba 时抛出错误

Access 2010 VBA 错误 2425“您输入的表达式具有数据库找不到的函数名称”

语法错误:预期的表达式,得到 '<'

IBAction 推送视图控制错误-“预期表达式”