2013-02-19 58 views
0
For Each r In Selection.Rows 
     For Each c In r 
      sum = sum + 1 
     Next c 
    Next r 

计数行NUM而不是细胞如何迭代Excel中选定的行?

For Each r In Selection.Rows 
     For Each c In r 
      msgbox "val = " & c.Value 
     Next c 
    Next r 

失败, '类型不匹配'。什么下降? Selection对象手册在哪里?

回答

3

因为您没有明确说明您想要进行的操作,For Each c in r正在返回多个单元格范围。

如果您在Sum = ...中断,并在观察窗口中查看c.Address,则可以看到此内容。

要解决,试试这个

Dim c As Range, r As Range 
Dim Sum As Long 
For Each r In Selection.Rows 
    For Each c In r.Cells 
     Sum = Sum + 1 
    Next c 
Next r 

甚至这个

Dim c As Range 
Dim Sum As Long 
For Each c In Selection.Cells 
    Sum = Sum + 1 
Next c 
+0

+ 1太快LOL。不得不放弃我的帖子:) – 2013-02-19 09:54:00

+0

谢谢@Siddharth。 – 2013-02-19 09:56:11

+0

'r.Cells',我自己就意识到了这一点。谢谢 – Val 2013-02-19 09:56:50