VB的一段程序如下:
    
If Clr = "双色球兰球分析" Then
        LottoryBook.Sheets(Array("原始数据", "AC值", "AC上下", "周期8", "黄乘均8", "黄除均8", "走势分布", "个位频率", "2区", "2区间", "4区", "4区间", "黄乘1", "黄乘2", "黄乘3", "黄除1", "黄除2", "黄除3", "上下相加减", "上下除", "乘分析")).Select '每次新的一期开奖数据输入后,在Execl表格最上数据处,插入一行
        LottoryBook.Sheets("原始数据").Activate
        LottorySheet.Rows("4:4").Select
        LottoryApp.Selection.Insert Shift:=xlDown
        LottoryBook.Sheets("周期8").Select
在下面一句话报错:实时错误1004,类Range的Select方法无效。
        LottorySheet.Columns("B:B").Select
        LottoryApp.Selection.Insert Shift:=xlToRight哪位知道是什么原因,为什么其上面的语句就没有问题?

解决方案 »

  1.   

       Public ex   As Excel.Application
      Public wb   As Excel.Workbook
      Public sh   As Excel.Worksheet
    Private Sub Command3_Click()
        Set ex = CreateObject("Excel.Application")
        Set wb = ex.Workbooks.Open("C:\A.XLS") '你的文件
        Set sh = wb.Sheets(1)   '第一个工作表
               sh.Rows("4:4").Select
           ex.Selection.Insert Shift:=xlDown
           Set sh = wb.Sheets(2)  '第二个工作表
           wb.Sheets("Sheet2").Select
           sh.Columns("B:B").Select
            ex.Selection.Insert Shift:=xlToRight
         ex.Visible = True
        'wb.Close SaveChanges:=True    '直接关闭不保存
        'ex.Quit
        Set ex = Nothing
        Set wb = Nothing
        Set sh = Nothing
    End Sub
      

  2.   

    可以了。
    最终改为了:
        LottoryBook.Sheets(Array("原始数据", "AC值", "AC上下", "走势分布", "个位频率", "2区", "2区间", "4区", "4区间", "黄乘1", "黄乘2", "黄乘3", "黄除1", "黄除2", "黄除3", "上下相加减", "上下除", "乘分析")).Select '
        LottoryBook.Sheets("原始数据").Activate
        LottorySheet.Rows("4:4").Select
        LottoryApp.Selection.Insert Shift:=xlDown
        Set LottorySheet = LottoryBook.Worksheets("周期8")
        LottoryBook.Sheets(Array("周期8", "黄乘均8", "黄除均8")).Select
        LottorySheet.Columns("B:B").Select
        LottoryApp.Selection.Insert Shift:=xlToRight
        Set LottorySheet = LottoryBook.Worksheets("原始数据")但如果我将上面的语句变成一个子过程:
    Public Sub 单球页初始化(ByVal LottorySheet As Excel.Worksheet)
        LottorySheet.Select
        LottoryBook.Sheets(Array("原始数据", "AC值", "AC上下", "走势分布", "个位频率", "2区", "2区间", "4区", "4区间", "黄乘1", "黄乘2", "黄乘3", "黄除1", "黄除2", "黄除3", "上下相加减", "上下除", "乘分析")).Select '每次新的一期开奖数据输入后,在Execl表格最上数据处,插入一行
        LottoryBook.Sheets("原始数据").Activate
        LottorySheet.Rows("4:4").Select
        LottoryApp.Selection.Insert Shift:=xlDown
        Set LottorySheet = LottoryBook.Worksheets("周期8")
        LottoryBook.Sheets(Array("周期8", "黄乘均8", "黄除均8")).Select
        LottorySheet.Columns("B:B").Select
        LottoryApp.Selection.Insert Shift:=xlToRight
        Set LottorySheet = LottoryBook.Worksheets("原始数据")
    End SubASheet="原始数据"
    call 单球页初始化(LottoryBook.Worksheets(ASheet))总提示我:要求对象这是怎么会事情呀。
    谢谢!
      

  3.   

     要在
    set
    之间进行
      

  4.   

    Public Sub Excel(ByVal SheetsID1 As Long, ByVal SheetsID2 As Long)
        Set ex = CreateObject("Excel.Application")
        Set wb = ex.Workbooks.Open("C:\A.XLS") '你的文件
        Set sh = wb.Sheets(SheetsID1)   '第一个工作表
               sh.Rows("4:4").Select
           ex.Selection.Insert Shift:=xlDown
           Set sh = wb.Sheets(SheetsID2)  '第二个工作表
            wb.Sheets(SheetsID2).Select
           sh.Columns("B:B").Select
            ex.Selection.Insert Shift:=xlToRight
         ex.Visible = True
        'wb.Close SaveChanges:=True    '直接关闭不保存
        'ex.Quit
        Set ex = Nothing
        Set wb = Nothing
        Set sh = Nothing
    End SubPrivate Sub Command1_Click()
    Call Excel(1, 2) '指定你的工作表
    End Sub
      

  5.   

    刚才我也遇到这个问题,请教高手了,原来设置某个单元格时,必须保证该单元格所属的Worksheet是活动的(workSheet1.Activate())