首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单元格1=单元格2,单元格2=单元格1,两者都有不同的输入方法,Excel

单元格1=单元格2,单元格2=单元格1,两者都有不同的输入方法,Excel
EN

Stack Overflow用户
提问于 2017-04-10 20:28:15
回答 2查看 263关注 0票数 0

我希望两个单张中的两个单元格总是相等的,但是对于任何一个单元格来说,它们都有各自不同的公式、列表或输入。我使用了下面的代码,它可以工作,但只需要修复错误。

仪表板

代码语言:javascript
复制
Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Count > 1 Then Exit Sub

    If Target.Address = "$I$20" Then
        Sheets("Questionnaire").Range("$AH$15") = Sheets("Dashboard").Range("$I$20").Value
    End If
End Sub

调查表

代码语言:javascript
复制
Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Count > 1 Then Exit Sub

    If Target.Address = "$AH$15" Then
        Sheets("Dashboard").Range("$I$20") = Sheets("Questionnaire").Range("$AH$15").Value
    End If

End Sub

请帮我找出错误?

EN

回答 2

Stack Overflow用户

发布于 2017-04-10 20:45:22

尝试在设置每个处理程序的单元格值之前添加Application.EnableEvents = False,例如:

仪表板

代码语言:javascript
复制
Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Count > 1 Then Exit Sub

If Target.Address = "$I$20" Then
    Application.EnableEvents = False
    Sheets("Questionnaire").Range("$AH$15") = Sheets("Dashboard").Range("$I$20").Value
    Application.EnableEvents = True
End If

End Sub

调查表

代码语言:javascript
复制
Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Count > 1 Then Exit Sub

If Target.Address = "$AH$15" Then
    Application.EnableEvents = False
    Sheets("Dashboard").Range("$I$20") = Sheets("Questionnaire").Range("$AH$15").Value
    Application.EnableEvents = True
End If

End Sub

不过,请记住,设置值将覆盖输入的任何公式。

票数 1
EN

Stack Overflow用户

发布于 2017-04-10 21:53:18

可以使用工作簿级事件将其放置在工作簿代码窗格中:

代码语言:javascript
复制
Private Sub Workbook_SheetChange(ByVal Sh As Object, _ 
 ByVal Source As Range)

Select Case sh.Name & Source.Address
    Case "Dashboard$I$20"
        Equalize "Questionnaire", "$AH$15", Source

    Case "Questionnaire$AH$15"
        Equalize "Dashboard", "$I$20", Source
End Sub

Sub Equalize(targetShName As String, targetCellAddr As String, source As Range)
    Application.EnableEvents = False
    Sheets(targetShName).Range(targetCellAddr).Value = source.Value
    Application.EnableEvents = True
End If
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43332372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档