【问题标题】:Excel VBA - automatic if Cell A equals X then copy and paste in Cell BExcel VBA - 如果单元格 A 等于 X,则自动复制并粘贴到单元格 B
【发布时间】:2016-10-09 23:42:04
【问题描述】:

我目前有以下:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("B2,B11,D11")) Is Nothing Then
        Application.EnableEvents = False
        For Each C In Target
            If Not Intersect(C, Range("B2,B11,D11")) Is Nothing And Not C.HasFormula Then _
                C.Value = UCase(C.Value)
        Next C
        Application.EnableEvents = True
    End If
End Sub

我需要添加另一个宏来基本上做:

如果 G6 = N/A 则复制并粘贴到 H6 中,否则什么也不做。

我应该如何添加这个?

【问题讨论】:

    标签: excel vba macros


    【解决方案1】:

    根据您的问题,我不确定您希望如何将其包含在您的代码中,您的代码也会在您的 for 循环中打开一个 if 语句,但在外部将其关闭,我怀疑这是正确的.. 无论如何这里是代码将数据复制到 H6:

    If (ActiveSheet.Range("G6").Value = "N/A") Then
        ActiveSheet.Range("H6").Value = ActiveSheet.Range("G6").Value
    Else
        'do nothing     
    End If
    

    【讨论】:

    • 好的,我重新思考了一下,这就是我想要的:Sub Uppercase() ' 循环遍历指定范围内的每个单元格。 For Each x In Range("A1") ' 将范围内的文本更改为大写字母。 x.Value = UCase(x.Value) Next If (ActiveSheet.Range("G6").Value = "N/A") Then ActiveSheet.Range("H6").Value = ActiveSheet.Range("G6") .Value Else 'do nothing End If End Sub 但是这不是自动的,我该如何做到这一点?
    • 您编写的代码有效地说明了这一点:对于 range("A1") 中的每个 x,范围 A1 中只有一个值,即单元格 A1,所以这一切要做的就是制作单元格 A1大写然后你有如果 G6 是 N/A 然后 H6 = G6 它真的只有 2 个动作.. 你到底想做什么??
    猜你喜欢
    • 1970-01-01
    • 2021-12-04
    • 2017-04-26
    • 2017-02-06
    • 2015-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多