一聚教程网:一个值得你收藏的教程网站

热门教程

Excel中编程中数据类型导致代码运行时错误

时间:2022-06-27 09:49:02 编辑:袖梨 来源:一聚教程网

问题说明
今天在群内遇到一位童鞋,其说一段代码总是报错,并且不明原因,代码类似如下:

 代码如下 复制代码

Sub ErrDemo()
On Error GoTo Emsg
  Dim i As Long
  Dim SName As String
  For i = 1 To 4
        Sheets(Sheets("Sheet1").Cells(i, 1).Value).Select
  Next
  Exit Sub
Emsg:
  MsgBox "Error!"
End Sub

其主要目的,就是通过扫描单元格内保存的Sheet名称来实现不同的Sheet激活显示等等。

问题原因
小编看了一下他的代码,再看了一下保存在单元格中的Sheet名称,可以得到一个结论,数据类型不明确导致错误,因为这位童鞋有些Sheet的名称直接就是数字类的,熟悉Vba的童鞋都应该知道Sheets("Sheet名称")或者Sheets(SheetID)都可以实现Sheet的定位,那么你传递一个数字过去Sheets将识别为一个数字的ID。

解决办法
将代码

 代码如下 复制代码
1 Sheets(Sheets("Sheet1").Cells(i, 1).Value).Select

修改为

 代码如下 复制代码
1 Sheets(Sheets("Sheet1").Cells(i, 1).text).Select

注意后面的代码,我们将强制使用文本类型作为传递的参数类型,问题得以解决

热门栏目