新足迹

 找回密码
 注册

精华好帖回顾

· 大头带你吃--lunch in Sydney -- 2014.8.19更新(请点一楼连接,文章在餐馆点评版) (2010-1-29) datou2z · 贝贝的睡觉训练 (2007-11-28) Rainyichen
· [心情日历本 11月1日] 偶尔抒情 (2008-11-1) Unless · 台式三杯鸡.。。。。。。。。。。。。 (2011-8-30) chesecake
Advertisement
Advertisement
查看: 1440|回复: 11

[会计] 求救 excel vba 问题 [复制链接]

发表于 2013-7-23 15:12 |显示全部楼层
此文章由 lulucai 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 lulucai 所有!转贴必须注明作者、出处和本声明,并保持内容完整

我需要查某个cell是不是blank, 然后do something
所以就用了if isempty ( cell),结果一直给我syntax error, 第一次写vba, 求教大神,到底哪里错了阿



If IsEmpty(ThisWorkbook.Sheets("sheet1").cell(B, 2))
        Then msgbox ("hi")
End If
Advertisement
Advertisement

发表于 2013-7-23 15:15 |显示全部楼层
此文章由 jasonliu234 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 jasonliu234 所有!转贴必须注明作者、出处和本声明,并保持内容完整
我记得函数 许是 ISBLANK

发表于 2013-7-23 15:17 |显示全部楼层
此文章由 yang~_~ 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 yang~_~ 所有!转贴必须注明作者、出处和本声明,并保持内容完整
本帖最后由 yang~_~ 于 2013-7-23 15:19 编辑

If IsEmpty(ThisWorkbook.Sheets("sheet1").cell(2, 2))
        Then msgbox ("hi")
End If

评分

参与人数 1积分 +4 收起 理由
lulucai + 4 谢谢奉献

查看全部评分

发表于 2013-7-23 15:35 |显示全部楼层
此文章由 lulucai 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 lulucai 所有!转贴必须注明作者、出处和本声明,并保持内容完整
yang~_~ 发表于 2013-7-23 15:17
If IsEmpty(ThisWorkbook.Sheets("sheet1").cell(2, 2))
        Then msgbox ("hi")
End If

我把B改成2了
其实我整个程序是这样的,一个loop加上一个if. 这次给我一个run time error, 438.doesn't support this property 这到底是什么错阿  


    For i = 1 To 10
        If IsEmpty(ThisWorkbook.Sheets("sheet1").cell(2, i)) Then
        ThisWorkbook.Sheets("sheet1").cell(2, i) = ThisWorkbook.Sheets("Jiffy Record").Range("C10")
        ThisWorkbook.Sheets("sheet1").cell(3, i) = ThisWorkbook.Sheets("Jiffy Record").Range("C13")
        ThisWorkbook.Sheets("sheet1").cell(6, i) = ThisWorkbook.Sheets("Jiffy Record").Range("C24")
        ThisWorkbook.Sheets("sheet1").cell(7, i) = ThisWorkbook.Sheets("Jiffy Record").Range("C26")
           
        Else: i = i + 1
        End If
    Next i

发表于 2013-7-23 15:45 |显示全部楼层
此文章由 xkon4 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 xkon4 所有!转贴必须注明作者、出处和本声明,并保持内容完整
lulucai 发表于 2013-7-23 15:35
我把B改成2了
其实我整个程序是这样的,一个loop加上一个if. 这次给我一个run time error, 438.doesn't s ...

Sub Test()

Dim I As Integer

   For I = 1 To 10
        If IsEmpty(ThisWorkbook.Sheets("sheet1").Range("I2")) Then
        
        ThisWorkbook.Sheets("sheet1").Range("I2").Value = ThisWorkbook.Sheets("Jiffy Record").Range("C10")
        XXXXXX
        XXXXXX
   
           
        Else
        I = I + 1
        End If
    Next I
End Sub


评分

参与人数 1积分 +4 收起 理由
lulucai + 4 感谢分享

查看全部评分

Disclaimer:

本人所阐述观点和内容,仅供交流参考,不构成任何投资建议
-----------------
等待戈多

发表于 2013-7-23 15:48 |显示全部楼层
此文章由 lulucai 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 lulucai 所有!转贴必须注明作者、出处和本声明,并保持内容完整
xkon4 发表于 2013-7-23 15:45
Sub Test()

Dim I As Integer

谢谢
Range("I2")不会被误会为i2么? 我想要check 的是B2, B3, B4.....一直下去,其实是B, i ( i 是变量)
Advertisement
Advertisement

发表于 2013-7-23 15:50 |显示全部楼层
此文章由 lulucai 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 lulucai 所有!转贴必须注明作者、出处和本声明,并保持内容完整
xkon4 发表于 2013-7-23 15:45
Sub Test()

Dim I As Integer

现在改成这样了,还是run time error阿

Dim I As Integer
    For I = 1 To 10
        If IsEmpty(ThisWorkbook.Sheets("sheet1").cell(2, I)) Then
        ThisWorkbook.Sheets("sheet1").cell(B, I) = ThisWorkbook.Sheets("Jiffy Record").Range("C10")
        ThisWorkbook.Sheets("sheet1").cell(C, I) = ThisWorkbook.Sheets("Jiffy Record").Range("C13")
        ThisWorkbook.Sheets("sheet1").cell(G, I) = ThisWorkbook.Sheets("Jiffy Record").Range("C24")
        ThisWorkbook.Sheets("sheet1").cell(H, I) = ThisWorkbook.Sheets("Jiffy Record").Range("C26")
           
        Else: I = I + 1
        End If
    Next I

发表于 2013-7-23 16:31 |显示全部楼层
此文章由 yang~_~ 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 yang~_~ 所有!转贴必须注明作者、出处和本声明,并保持内容完整
lulucai 发表于 2013-7-23 15:35
我把B改成2了
其实我整个程序是这样的,一个loop加上一个if. 这次给我一个run time error, 438.doesn't s ...

不是cell是cells

发表于 2013-7-23 16:40 |显示全部楼层
此文章由 yang~_~ 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 yang~_~ 所有!转贴必须注明作者、出处和本声明,并保持内容完整
lulucai 发表于 2013-7-23 15:50
现在改成这样了,还是run time error阿

Dim I As Integer

好像行、列弄反了。cells(row,column)
Dim I As Integer
    For I = 1 To 10
        If IsEmpty(ThisWorkbook.Sheets("sheet1").cells(I, 2)) Then
        ThisWorkbook.Sheets("sheet1").cells(I, 2) = ThisWorkbook.Sheets("Jiffy Record").Range("C10")
        ThisWorkbook.Sheets("sheet1").cells(I, 3) = ThisWorkbook.Sheets("Jiffy Record").Range("C13")
        ThisWorkbook.Sheets("sheet1").cells(I, 7) = ThisWorkbook.Sheets("Jiffy Record").Range("C24")
        ThisWorkbook.Sheets("sheet1").cells(I, 8) = ThisWorkbook.Sheets("Jiffy Record").Range("C26")
           
        Else: I = I + 1
        End If
    Next I

评分

参与人数 1积分 +4 收起 理由
lulucai + 4

查看全部评分

发表于 2013-7-23 16:40 |显示全部楼层
此文章由 lulucai 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 lulucai 所有!转贴必须注明作者、出处和本声明,并保持内容完整
yang~_~ 发表于 2013-7-23 16:31
不是cell是cells

改了,继续run time error 1004, 这次换了个error。。。。天哪

Dim I As Integer
    For I = 1 To 10
        If IsEmpty(ThisWorkbook.Sheets("sheet1").Cells(B, I)) Then
        ThisWorkbook.Sheets("sheet1").Cells(B, I) = ThisWorkbook.Sheets("Jiffy Record").Range("C10")
        ThisWorkbook.Sheets("sheet1").Cells(C, I) = ThisWorkbook.Sheets("Jiffy Record").Range("C13")
        ThisWorkbook.Sheets("sheet1").Cells(G, I) = ThisWorkbook.Sheets("Jiffy Record").Range("C24")
        ThisWorkbook.Sheets("sheet1").Cells(H, I) = ThisWorkbook.Sheets("Jiffy Record").Range("C26")
           
        Else: I = I + 1
        End If
    Next I

发表于 2013-7-23 16:42 |显示全部楼层
此文章由 lulucai 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 lulucai 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Dim I As Integer
    For I = 1 To 10
        If IsEmpty(ThisWorkbook.Sheets("sheet1").Cells(I, 2)) Then
        ThisWorkbook.Sheets("sheet1").Cells(I, 2) = ThisWorkbook.Sheets("Jiffy Record").Range("C10")
        ThisWorkbook.Sheets("sheet1").Cells(I, 3) = ThisWorkbook.Sheets("Jiffy Record").Range("C13")
        ThisWorkbook.Sheets("sheet1").Cells(I, 7) = ThisWorkbook.Sheets("Jiffy Record").Range("C24")
        ThisWorkbook.Sheets("sheet1").Cells(I, 8) = ThisWorkbook.Sheets("Jiffy Record").Range("C26")
           
        Else: I = I + 1
        End If
    Next I

终于没错了
Advertisement
Advertisement

发表于 2013-7-23 16:45 |显示全部楼层
此文章由 xkon4 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 xkon4 所有!转贴必须注明作者、出处和本声明,并保持内容完整
lulucai 发表于 2013-7-23 16:42
Dim I As Integer
    For I = 1 To 10
        If IsEmpty(ThisWorkbook.Sheets("sheet1").Cells(I, 2)) T ...

恭喜
Disclaimer:

本人所阐述观点和内容,仅供交流参考,不构成任何投资建议
-----------------
等待戈多

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Advertisement
Advertisement
返回顶部