【问题标题】:Apply formula, offset three columns from selected cells应用公式,从选定单元格偏移三列
【发布时间】:2019-03-30 22:41:00
【问题描述】:

我创建了 VBA 代码来应用一个公式,该公式应该执行以下操作:当用户选择一个单元格区域时,该公式将应用于所选数据右侧的 3 列。例如,如果用户选择范围 G8:G18,当用户执行宏时,应从范围 G8:G18 的数据中将公式应用于范围 J8:J18

但是,公式在 G8 范围内,而不是在 J8:J18 范围内应用。

Sub ghjkk()
Dim c As Range
Dim rng As Range
Set rng = Selection.Offset(0, 3)
For Each c In rng
ActiveCell.FormulaR1C1 = _
        "=IF(RC[-3]=0.2,""Y5"",IF(RC[-3]=0.1,""Y6"",IF(RC[-3]=0,""V0"",IF(RC[-3]=0.021,""Y3"",IF(RC[-3]=0.055,""Y4"",FALSE)))))"
Next c
End Sub

【问题讨论】:

    标签: excel vba for-loop select offset


    【解决方案1】:

    试试

    Sub ghjkk()
        Dim c As Range
        Dim rng As Range
        Set rng = Selection.Offset(0, 3)
        For Each c In rng
            c.FormulaR1C1 = _
     "=IF(RC[-3]=0.2,""Y5"",IF(RC[-3]=0.1,""Y6"",IF(RC[-3]=0,""V0"",IF(RC[-3]=0.021,""Y3"",IF(RC[-3]=0.055,""Y4"",FALSE)))))"
        Next c
    End Sub
    

    【讨论】:

      【解决方案2】:

      如果需要,更改工作表名称和范围并在特定工作表上的 Worksheet_Change 事件中导入以下代码。

      Option Explicit
      
      Private Sub Worksheet_Change(ByVal Target As Range)
      
         If Not Intersect(Target, Range("G8:G18")) Is Nothing Then
      
             Application.EnableEvents = False
      
                  If Cells(Target.Row, 4).Value = "0.2" Then
                      Cells(Target.Row, 10).Value = "Y5"
                  ElseIf Cells(Target.Row, 4).Value = "0.1" Then
                      Cells(Target.Row, 10).Value = "Y6"
                  ElseIf Cells(Target.Row, 4).Value = "0" Then
                      Cells(Target.Row, 10).Value = "V0"
                  ElseIf Cells(Target.Row, 4).Value = "0.021" Then
                      Cells(Target.Row, 10).Value = "Y3"
                  ElseIf Cells(Target.Row, 4).Value = "0.055" Then
                      Cells(Target.Row, 10).Value = "Y4"
                  Else: Cells(Target.Row, 10).Value = "False"
                  End If
      
              Application.EnableEvents = True
          End If
      
      End Sub
      

      【讨论】:

        猜你喜欢
        • 2017-01-06
        • 1970-01-01
        • 1970-01-01
        • 2017-11-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-09
        相关资源
        最近更新 更多