【问题标题】:Ignore formulas while Pasting values while copying from data table to multiple sheets?从数据表复制到多个工作表时粘贴值时忽略公式?
【发布时间】:2022-01-03 14:46:05
【问题描述】:

我正在尝试将数据从数据库传输到具有相同模板的工作簿中的多个工作表中。但是,我不想在复制时忽略公式。我当前的宏在传输数据时出现循环引用错误。

如何在通过循环过程将数据复制到不同模板时忽略公式。

我还想知道如何将wkSht.Name 引用的多个/不同列中的数据传输到模板表的不同列。

以下代码仅将数据从主工作表的Range(cell.Offset(0, 18), cell.Offset(18, 18) 传输到同一工作簿模板工作表的O17 单元格。

任何人都可以更新代码并添加仅复制单元格值而不是公式的条件。

Sub FC()
Dim wkSht As Worksheet
Dim cell As Range

For Each cell In Sheets("Combine").Range("A4:A600").Cells

    For Each wkSht In ThisWorkbook.Worksheets
    
        If cell.Value = wkSht.Name Then
       
        Sheets("Combine").Range(cell.Offset(0, 18), cell.Offset(18, 18)).Copy wkSht.Range("O17")
        
        End If
    
    Next wkSht

Next cell

Application.ScreenUpdating = True

End Sub

【问题讨论】:

  • 您也需要复制格式吗? A:A 列Sheets("Combine") 中是否只出现一次工作表名称?
  • 复制格式不是必须的
  • 好的。我会在几分钟内给出答案...
  • 请测试我粘贴的代码。如果有必要,我会评论它。现在不是时候这样做......

标签: excel vba loops


【解决方案1】:

请测试下一个代码:

Sub FC()
 Dim wkSht As Worksheet, wsC As Worksheet, rngSearch As Range
 Dim shNCell As Range

Set wsC = Sheets("Combine")
Set rngSearch = wsC.Range("A4:A600")
    For Each wkSht In ThisWorkbook.Worksheets
        'find the sheet name cell in rngSearch:
        Set shNCell = rngSearch.Find(what:=wkSht.Name, LookIn:=xlValues, Lookat:=xlWhole, MatchCase:=False)
        'if found:
        If Not shNCell Is Nothing Then
          'copy the below built array in the necessary place
          wkSht.Range("O17").Resize(19, 1).value = wsC.Range(shNCell.Offset(0, 18), shNCell.Offset(18, 18)).value
        End If
    Next wkSht
End Sub

未经测试,但应该是这个想法。如果出现问题,请告诉我它有什么问题(或没有......)。

我会在几分钟后对代码行进行注释,在完成紧急事情后...

【讨论】:

  • @Samiul 没抽时间测试一下上面的代码吗?如果经过测试,它没有按您的需要工作吗?如果不是,它有什么问题?
猜你喜欢
  • 1970-01-01
  • 2015-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-18
  • 1970-01-01
  • 1970-01-01
  • 2022-01-21
相关资源
最近更新 更多