我录制的宏代码: 
    Rows("1:5").Select 
    Selection.Copy 
    Sheets("Sheet3").Select 
    Rows("1:1").Select 
    Selection.Insert Shift:=xlDown 
现在我想改用我自己的sheet对象来进行插入: 
    Rows("1:5").Select 
    Selection.Copy 
    gb_XlsWSheet.Rows("1:1").Select 
    gb_XlsWSheet.Activate 
    gb_XlsWSheet.Range("1:1").Insert Shift:=xlDown 
省略部分为生成的excel文件 
运行后没有见到异常,但是生成的excel里边没有数据,不知道Range对象这样用法有什么错误,求高人指点下

解决方案 »

  1.   

    Paste用过有警告信息,但是不想把警告信息给除去,主要还是想用Insert 
      

  2.   

    也可以把ClipBoard对象的数据取出来再写到格子里
      

  3.   

    是在不好意思,第一次接触vba对于你所说的ClipBoard对象也没见过,能具体点么
      

  4.   


    '看一下以下二个语句对你是否有用: Worksheets("Sheet1").Rows("1:5").Copy             '选择要复制的位置 Sheet1工作本中的 1-5行
     Worksheets("Sheet2").Rows("1:1").Insert xlDown    '复制至的位置     Sheet2工作本中的 第1行.插入.向下
      

  5.   

    VB里面的不可视对象
    就是"剪切板"
    你前面复制了,又不让粘贴,只能从剪切板里拿出来,写到指定格子
    我这里没装VB,只说个方法
      

  6.   

    不好意思你这个方法我刚才用了也就是把
    gb_XlsWSheet.Range("1:1").Insert Shift:=xlDown 
    改成
    gb_XlsWSheet.Range("1:1").Rows("1:1").Insert xlDown
    我理解的,但是还是生成的空excel
      

  7.   

    纠正一下,是
    gb_XlsWSheet.Rows("1:1").Insert xlDown 
    手误
      

  8.   

    gb_XlsWSheet.Range("1:1").Rows("1:1").Insert xlDown 你为什么要在前面加上 Range("1:1")  .这个是什么?????你用
    gb_XlsWSheet.Rows("1:1").Insert xlDown 
      

  9.   

    那你确认,
    你要复制的地方有数据吗?不要没有数据就复制,那当然会空的了.要不,你将你的Excel发至我
      

  10.   

    确认有数据用Paste方法是好用,邮件已经发给你了
      

  11.   

    整那么复杂干吗?
    Sub Test()
        Sheet1.Rows("1:5").Copy
        Sheet2.Rows("1:1").Insert Shift:=xlDown
        Application.CutCopyMode = False
    End Sub
      

  12.   

    Private Sub CommandButton3_Click()
      Sheets("temp1").Rows("1:10").Copy
      Dim rowIdx As Integer
      rowIdx = 6
      
      Set gb_XlsWBook = Application.Workbooks.Add(1)
      Set gb_XlsWSheet = gb_XlsWBook.Worksheets("Sheet1")
      
      gb_XlsWSheet.Rows("1:1").Insert xlDown
      
      Kill "C:\w222XXasd.xls"
      gb_XlsWBook.SaveAs ("C:\w222XXasd.xls")
      
      gb_XlsWBook.Close
      
    End Sub'我将你Command3中的语句改为上面那样了.
      

  13.   

    这个方法好用,谢谢,不过我是不明白我那样写法为什么就不行呢,我那个创建excel方法是共同的,我必须的调用
      

  14.   

    原因,我在你回信中有说明.
    如果你要共用一样可以.
    你可以在前面的时候就这样做.设置
    gb_XlsWBook
    gb_XlsWSheet
    为全局变量.
    这个你有做.
    再加最开始的时候就可以进行引用.
     Set gb_XlsWBook = Application.Workbooks.Add(1) 
     Set gb_XlsWSheet = gb_XlsWBook.Worksheets("Sheet1")