【问题标题】:(expected expression) vba error(预期表达式)vba 错误
【发布时间】: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

标签: vba excel


【解决方案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
猜你喜欢
  • 1970-01-01
  • 2011-12-25
  • 1970-01-01
  • 1970-01-01
  • 2016-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多