【发布时间】:2015-10-27 21:12:38
【问题描述】:
下面的代码确保范围(“D16:E25”)中只有一个单元格可以包含任何值,当在此范围内的其他单元格之一中输入任何值/字符串时,代码会删除所有其他。 (这部分工作正常,感谢“Macro Man”)
现在我希望代码从 B 列的某个单元格中复制(并粘贴到“B5”)一个值,这需要是与范围中的值位于同一行的单元格(“D16 :E16")。 尝试了您可以在下面找到的以下代码......但它没有用。 有人知道解决方案吗? 我希望工作簿(单元格“B5”)自动更新,因此无需运行宏或按下按钮。
If Not Intersect(Target, Range("D16:E25")) Is Nothing Then
If Target.Cells.Count > 1 Then
MsgBox "Please edit one cell at a time!"
Else
Application.EnableEvents = False
newVal = Target.Value
Range("D16:E25").ClearContents
Target.Value = newVal
a = ActiveCell
Application.EnableEvents = True
End If
End If
If a.Column = 4 Then
Range("B5") = Range(a).Offset(0, -2).Value
Else: Range("B5") = Range(a).Offset(0, -3).Value
End If
End Sub
【问题讨论】:
-
为什么您建议使用 MsgBox 进行多单元格编辑,但不颠倒该过程(从而允许保留多单元格编辑)?