+ -
当前位置:首页 → 问答吧 → 求高手指点,VBA 代码怎么老出错啊

求高手指点,VBA 代码怎么老出错啊

时间:2011-08-09

来源:互联网

Private Sub CommandButton1_Click()
LastRow = Range("A65536").End(xlUp).Row
For i = 1 To LastRow
If IsEmpty(Cells(i, 15)) Then
If Range(Cells(i - 1, 15).Resize(2, 1)).MergeCells Then   '老出错
   D = Range(Cells(i - 1, -2).Resize(1, 16)).Select '老出错
   E = Selection.Find(What:="*").Columns '不知道可以这样表达不,找有内容的单元格
    Cells(i - 1, E).Resize(2, 1).Merge
   
End If
End

Next i

End Sub

作者: zhoujiaping1976   发布时间: 2011-08-09

i = 1 的时候 Range(Cells(i - 1, 15).
i-1 =0 当然会出错

作者: 白云2011   发布时间: 2011-08-09

2楼的心境真好,比起梅花,你的用户名温和多了,江门哪里的?我也是,一真想学VBA,不知肯否赐教呀。

作者: chaobingyang   发布时间: 2011-08-09

另外第二个end 少了if,vba是很多地方容易出错(但不知道打了补丁还会不会出错,咱们这些穷孩子,只能用天朝版的呀)

另外if的判断,尽量避免多重内套中用 = 号的判断,容易莫名其妙地出错(这个一行一行debug,就会发现),多用< >来判断吧,遇到=号不行,就用< >逻辑上代替=号的功能

作者: micro_mok   发布时间: 2011-08-09

我改了还是出错啊!帮我再检查一下吧!

附件

出错信息.jpg(40.41 KB)

2011-8-9 12:18

出错信息2.jpg(28.54 KB)

2011-8-9 12:18

作者: zhoujiaping1976   发布时间: 2011-08-09

江门只去过一次


另外单元各cells(i - 1,-2)
改为cells(i - 1,2)
cells(i - 1,-2)列是从1开始的

作者: 白云2011   发布时间: 2011-08-09

大哥还是出错啊!谢谢啦1

作者: zhoujiaping1976   发布时间: 2011-08-09

range(cells(i-1,2).resize(1,16)).select 改为:
cells(i-1,2).resize(1,16).select 或者:
range(cells(i-1,2),cells(i-1,17)).select

作者: 陈国华   发布时间: 2011-08-09

相关阅读 更多