【问题标题】:VBA to copy cell from Sheet"A" to merged cells in Sheet"B"VBA将单元格从工作表“A”复制到工作表“B”中的合并单元格
【发布时间】:2014-11-11 11:42:48
【问题描述】:

如何将工作表“A”中的单个单元格原始复制到工作表“B”中的原始合并单元格,这假设转到合并单元格中的下一行?我有以下 VBA,但它只适用于第 5 行而不适用于其他行。

Private Sub Decisionbtn_Click()
If Sheets("Baseline_RA").Cells(ActiveCell.Row, 14).Value = "Health risk assessment" Then
    Sheets("Health RA").Range("A5").Value = Sheets("Baseline_RA").Cells(ActiveCell.Row, 1)
    Sheets("Health RA").Range("B5").Value = Sheets("Baseline_RA").Cells(ActiveCell.Row, 2)
    Sheets("Health RA").Range("I5").Value = Sheets("Baseline_RA").Cells(ActiveCell.Row, 8)
    Sheets("Health RA").Range("O5").Value = Sheets("Baseline_RA").Cells(ActiveCell.Row, 11)
    Sheets("Health RA").Range("P5").Value = Sheets("Baseline_RA").Cells(ActiveCell.Row, 12)
    Sheets("Health RA").Range("Q5").Value = Sheets("Baseline_RA").Cells(ActiveCell.Row, 13)

    ElseIf Sheets("Baseline_RA").Cells(ActiveCell.Row, 14).Value = "Task risk assessment" Then
    Sheets("Task RA").Range("A5").Value = Sheets("Baseline_RA").Cells(ActiveCell.Row, 1)
    Sheets("Task RA").Range("B5").Value = Sheets("Baseline_RA").Cells(ActiveCell.Row, 2)
    Sheets("Task RA").Range("J5").Value = Sheets("Baseline_RA").Cells(ActiveCell.Row, 8)
    Sheets("Task RA").Range("P5").Value = Sheets("Baseline_RA").Cells(ActiveCell.Row, 11)
    Sheets("Task RA").Range("Q5").Value = Sheets("Baseline_RA").Cells(ActiveCell.Row, 12)
    Sheets("Task RA").Range("R5").Value = Sheets("Baseline_RA").Cells(ActiveCell.Row, 13)

    ElseIf Sheets("Baseline_RA").Cells(ActiveCell.Row, 14).Value = "Environment risk assessment" Then
    Sheets("Environment RA").Range("A5").Value = Sheets("Baseline_RA").Cells(ActiveCell.Row, 1)
    Sheets("Environment RA").Range("B5").Value = Sheets("Baseline_RA").Cells(ActiveCell.Row, 2)
    Sheets("Environment RA").Range("H5").Value = Sheets("Baseline_RA").Cells(ActiveCell.Row, 8)
    Sheets("Environment RA").Range("N5").Value = Sheets("Baseline_RA").Cells(ActiveCell.Row, 11)
    Sheets("Environment RA").Range("O5").Value = Sheets("Baseline_RA").Cells(ActiveCell.Row, 12)
    Sheets("Environment RA").Range("P5").Value = Sheets("Baseline_RA").Cells(ActiveCell.Row, 13)

    ElseIf Sheets("Baseline_RA").Cells(ActiveCell.Row, 14).Value = "Non-Process risk assessment" Then
    Sheets("Non-Process RA").Range("A5").Value = Sheets("Baseline_RA").Cells(ActiveCell.Row, 1)
    Sheets("Non-Process RA").Range("B5").Value = Sheets("Baseline_RA").Cells(ActiveCell.Row, 2)
    Sheets("Non-Process RA").Range("H5").Value = Sheets("Baseline_RA").Cells(ActiveCell.Row, 8)
    Sheets("Non-Process RA").Range("N5").Value = Sheets("Baseline_RA").Cells(ActiveCell.Row, 11)
    Sheets("Non-Process RA").Range("O5").Value = Sheets("Baseline_RA").Cells(ActiveCell.Row, 12)
    Sheets("Non-Process RA").Range("P5").Value = Sheets("Baseline_RA").Cells(ActiveCell.Row, 13)
    End If

   End Sub

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    要将某些内容粘贴到合并区域中,您应该这样做: 假设合并区域为A1:A6

    Range("A1:A6").MergeArea.Cells(1, 1).Value = 'the value you want to paste.
    

    【讨论】:

      【解决方案2】:

      我测试了上述子程序的 2 个部分,它们运行良好(除了在您的“if”语句的第一部分中缺少行返回)。

      上述脚本检查工作表 Baseline_RA 中当前行的第 N 列,并根据它找到的内容(健康、任务...、环境...等)...复制并粘贴到相应的工作表中。

      如果它仅适用于第 5 行 .... 那么这是唯一正确匹配的行(健康、任务...、环境...等)。

      请确认您的其他行在 N 列中有符合以下条件之一的内容: • “健康风险评估” • “任务风险评估” • “环境风险评估” • “非流程风险评估”

      注意:以上值必须准确(即末尾不能有多余的空格等)

      【讨论】:

      • 对不起...没有忽略你...我会尽快赶上高峰
      • 基于上面的 VBA .... 它适用于 Sheets("Baseline_RA") 中的任何行。我需要查看 VBA 的其余部分以查看触发脚本运行的原因....但是一旦运行...它使用 Sheets("Baseline_RA") 中的活动行来选择适当的工作表并复制当前行。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-20
      • 1970-01-01
      • 1970-01-01
      • 2017-05-24
      相关资源
      最近更新 更多