从“受保护的视图”进行Excel编辑会导致“运行时错误5”

时间:2014-06-04 21:35:46

标签: excel vba excel-vba

我有一个启用宏的电子表格(Excel 2010)可以正常工作,除非您通过互联网将其发送给某人。如果发送,收件人必须启用编辑功能。在受保护的视图中,然后它会引发错误。

"运行时错误5"

所以我的代码很简单,我正在为世界杯做一个办公室。我试图做的就是让用户点击比赛中的国家名称,并在下一个单元格中填充该名称。它的工作原理,除非像我说的那样,否则我会通过电子邮件发送出去。

这是我的代码。有谁知道我可以让受保护的视图禁用?

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim r, c, n As Integer
If InRange(ActiveCell, Range("B2:B37")) Or InRange(ActiveCell, Range("F2:F37")) _
Or InRange(ActiveCell, Range("J2:J37")) Or InRange(ActiveCell, Range("N2:N37")) _
Or InRange(ActiveCell, Range("R2:R37")) Or InRange(ActiveCell, Range("V2:V37")) Then
   r = ActiveCell.Row
   c = ActiveCell.Column
   If r Mod 2 = 1 Then
       Cells(r - 1, c + 1).Value = Cells(r, c).Value
   Else
       Cells(r, c + 1).Value = Cells(r, c).Value
   End If
End If
End Sub

然后我的功能如下:

Private Function InRange(range1 As Range, range2 As Range) As Boolean
Set intersectrange = Application.Intersect(range1, range2)
InRange = Not intersectrange Is Nothing
Set intersectrange = Nothing
End Function

1 个答案:

答案 0 :(得分:0)

在选择预期的单元格之前,宏看起来好像正在运行。你可以添加一行

  

如果Len(ActiveCell)< 1然后退出sub

到代码的开头。这样,如果没有选择预期的单元格,它就不会出现错误,并且在用户选择有效单元格之前不会运行。