none
关于VBA Range对象的问题 RRS feed

  • 问题

  • 今日尝试写用vba写一个Macro,遇到一个关于Range对象的问题, 不得其解,请教各位大虾的意见.我是用excel 2003,VB 6.3

    Dim s_ex As Excel.Application
    Dim s_wb As Excel.Workbook
    Dim s_sht As Excel.Worksheet

    Dime s_f_name as String

    s_f_name="c:\\test.xls"


    Set s_ex = CreateObject("Excel.Application")
    '打开一个excel文件

    Set s_wb = s_ex.Workbooks.Open(s_f_name, , ReadOnly:=False)

    '添加一个新的sheet

    s_wb.Worksheets.Add after:=s_wb.Worksheets(s_wb.Worksheets.Count)

    '下面是对新加的sheet的操作

    's_wb.ActiveSheet.Range(Cells(11, 1)) = "test"

    '上面的一行运行时会报1004错误,即 application-defined or object-defined error

    's_wb.ActiveSheet.Range(s_wb.ActiveSheet.Cells(11, 1)) = "test"

    上面的一行运行时也会报1004错误
    's_wb.ActiveSheet.Range("B11") = "test"

    '上面的一行运行没有问题
    's_wb.ActiveSheet.Range("A1:B6") = "test"
    '上面的一行运行也没有问题

    但是,使用range可以用A1:B6,也可以用cells(1,1),cells(6,6)的.而我需要将待选的范围参数化,所以想用cells来指定range.

    大家有没有知道为何我用cells指定range会报1004错误?多谢!

    2007年4月1日 3:04

答案