【问题标题】:One macro running , the other does not一个宏运行,另一个不运行
【发布时间】:2019-05-29 06:17:00
【问题描述】:

我正在通过点击事件从网站导入货币数据。

导入工作并由此代码调用:

Option Explicit

 Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Selection.Count = 1 Then
    If Not Intersect(Target, Range("F13")) Is Nothing Then
        Call GetCurrency
    End If
End If
If Selection.Count = 1 Then
    If Not Intersect(Target, Range("F14")) Is Nothing Then
        Call UpdateCurrency
    End If
End If
End Sub

如果点击单元格F13,GetCurrency宏运行,导入数据,太棒了。

但是点击 F14 没有任何反应。

更新货币宏如下所示

Sub UpdateCurrency()

Range("N15").Value = Range("I19").Value
Range("N14").Value = Range("I26").Value
Range("N16").Value = Range("I22").Value

 End Sub

这应该只是更新一些其他单元格,以使另一个公式正常工作。问题是,为什么点击单元格F14不运行UpdateCurrency函数?

【问题讨论】:

  • 我测试了你的代码,它可以工作。你有工作表中的代码吗?如果它在一个模块中,它将无法工作
  • 我把它放在一张纸上。那么如果您将 H14-H17 设置为零或其他什么,F14 会更新初始值吗?这很奇怪
  • HM,现在可以了,没有做其他改变

标签: excel vba


【解决方案1】:

它认为你需要稍微改变一下 if 语句。

Option Explicit

 Private Sub Worksheet_SelectionChange(ByVal Target As Range)

 If Selection.Count = 1 Then
    If Target = Range("F13") Then
        If Not Intersect(Target, Range("F13")) Is Nothing Then
            Call GetCurrency
        End If
     Else
            If Not Intersect(Target, Range("F14")) Is Nothing Then
                Call UpdateCurrency
            End If
        End If
    End If
End Sub

【讨论】:

    猜你喜欢
    • 2015-10-20
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 2012-12-24
    • 1970-01-01
    • 1970-01-01
    • 2019-03-01
    • 1970-01-01
    相关资源
    最近更新 更多