EXCELVBA文档出现行时错误,弹出一个窗口“系统错误,&H80010108(-2147417848)。被调用的对象已与其客户端断开连接”
文档代码是我自己编写的,这个步骤运行的程序是在一个窗体中单击一个按钮把窗体中的一些数据分别输入到另外两个工作表的列表中,加到列表的最后位置。该文档已经使用一段时间,一直正常,最近运行时出现这个问题。
有哪位高手知道出错原因的请不吝赐教,还请详细说下解决方法。
EXCELVBA出现运行时错误:
答案:2 悬赏:0 手机版
解决时间 2021-12-25 15:26
- 提问者网友:战皆罪
- 2021-12-25 12:27
最佳答案
- 五星知识达人网友:神的生死簿
- 2021-12-25 14:01
应该是这样:
Sub 填充颜色()
Dim i As Integer
For i = 0 To 19
Range("E1").Offset(i).Interior.Color = RGB(Range("B1").Offset(i).Value, Range("C1").Offset(i).Value, Range("D1").Offset(i).Value)
Next
End Sub
我也不是很懂VBA,所以可以最浅显地帮你解释一下。
在Excel中,OFFSET函数的功能为以指定的引用为参照系,通过给定偏移量得到新的引用。这个offset的含义百度下就有,嘿嘿。
你原来代码的问题主要是Range( )这种里面没有加引号。加上就好了,用法问题。
另外如果想要E列都填充的话,偏移值应该从0开始。就是For i = 0 To 19,不知道你为什么原来是For i = 2 To 19,如果这样定义的话,E1和E2是没有颜色的。
顺便再补充一下,你原来的代码多定义了G和B,但是下面完全没有用到,我看没啥意义就删了。
Sub 填充颜色()
Dim i As Integer
For i = 0 To 19
Range("E1").Offset(i).Interior.Color = RGB(Range("B1").Offset(i).Value, Range("C1").Offset(i).Value, Range("D1").Offset(i).Value)
Next
End Sub
我也不是很懂VBA,所以可以最浅显地帮你解释一下。
在Excel中,OFFSET函数的功能为以指定的引用为参照系,通过给定偏移量得到新的引用。这个offset的含义百度下就有,嘿嘿。
你原来代码的问题主要是Range( )这种里面没有加引号。加上就好了,用法问题。
另外如果想要E列都填充的话,偏移值应该从0开始。就是For i = 0 To 19,不知道你为什么原来是For i = 2 To 19,如果这样定义的话,E1和E2是没有颜色的。
顺便再补充一下,你原来的代码多定义了G和B,但是下面完全没有用到,我看没啥意义就删了。
全部回答
- 1楼网友:持酒劝斜阳
- 2021-12-25 14:49
dim语句中的integer都改为long,因为integer正数最大为32767 另外,大量循环应该考虑将表格读入数组,用数组参与循环,提高速度。 比如使用语句:a1=worksheets("样本1").usedrange 则生成a1数组,a1(i,1)就相当于cells(i,1) 另外可以学习vba的字典法,进一步提高匹配速度
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯