【问题标题】:Inserting range to another sheet as rows multiple times将范围作为行多次插入另一个工作表
【发布时间】:2021-09-06 20:54:59
【问题描述】:

我正在尝试将示例参考卡中的范围复制到另一张工作表中,并将此范围作为行多次插入到现有工作表的上方。

现在我有代码可以插入这个范围一次:

Sub Nova_karta_export()

    Sheets("nova_karta").Select
    Rows("3:42").Select
    Selection.Copy
    Sheets("Export").Select
    Rows("3:3").Select
    Selection.Insert Shift:=xlDown

End Sub

我能够修改它以根据导出表中单元格“V1”中的值多次插入此范围。但是运行这个版本的计算量很大。

Sub Nova_karta_export_X_krat()

    Dim numberoftimestorun As Integer
    Dim i As Integer
 
    numberoftimestorun = Sheets("Export").Range("V1").Value
    
    For i = 1 To numberoftimestorun
        
    Sheets("nova_karta").Select
    Rows("3:42").Select
    Selection.Copy
      
    Sheets("Export").Select
    Rows("3:3").Select
    Selection.Insert Shift:=xlDown
    
    Next i
        
End Sub

如果我插入范围,例如十次,计算速度非常慢。我甚至需要添加 50 多个范围。

我怎样才能加快这个过程?通过变量? 以及如何通过消息窗口插入重复次数?我希望用户可以在运行宏后将重复次数写入窗口而不依赖于单元格“V1”

感谢您的帮助。

【问题讨论】:

标签: excel vba


【解决方案1】:

我在一个文件中有一个类似的宏,它使用调整大小,像这样:

Dim numberoftimestorun As Long
Dim i As Long
Dim source As Range

numberoftimestorun = Sheets("Export").Range("V1").Value
set source = Sheets("nova_karta").Rows("3:42")
source.Copy
Sheets("Export").Rows("3:3").Resize(numberoftimestorun * source.Rows.Count).Insert Shift:=xlDown

看看这样的事情是否会加快速度。
我借用的代码只使用了一行作为源代码,所以我希望它可以工作,未经测试。

【讨论】:

  • 效果很好,感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-09
  • 1970-01-01
  • 1970-01-01
  • 2016-09-17
  • 1970-01-01
相关资源
最近更新 更多