如何将多个单元格的结果返回到Excel中的固定单元格中

时间:2016-06-27 12:38:16

标签: excel vba excel-formula

我正在尝试制作时间表图表以测试我的技能。我使用条件格式用红色填充单元格,如果输入的值是错误的B2<>B$1*$A2,如果输入的值是正确的(B2=B$1*$A2)则使用蓝色。如果我输入错误的值进入任何单元格,我想要正确的值将返回到固定的单元格。假设if I enter 0 in B2 Cell , the correct value 1 (because 1x1 =1) should be returned to cell (AI9) 如果我在任何单元格中输入错误的值,我想在输入错误的值后立即看到正确的值并按下输入单元格({{1 }})。到目前为止,我正在尝试3天,但我无法理解,但我设法用这个公式为单细胞做到这一点。
 AI9
但我有900个细胞。我也试过了 =IF(B2<>B$1*$A2,B$1*$A2, "")单元格中的=IF(B2:AE31<>B$1:AE$1*$A2:$A31,B$1:AE$1*$A2:$A31, "")没有任何成功。手动为每个单元格做这件事很难。非常感谢任何帮助。

snapshot2

Snapshot1

2 个答案:

答案 0 :(得分:0)

我不知道你对VBA了解多少,但这听起来像是你最好的答案。 请按照以下步骤操作,并执行上述要求:

  1. 打开新工作簿
  2. 重命名第一张表&#34;表&#34;
  3. 同时按Alt和F11
  4. 这将打开VBA窗口 - 双击&#34; Sheet1(表格)&#34;左边的图标有侧面,如下所示 - 大灰色会变成白色,就像我的:
  5. enter image description here

    1. 点击大型白色部分的任意位置,然后插入以下代码:
    2. Private Sub Worksheet_Change(ByVal Target As Range)
      
      If Target.Row = 1 Or Target.Column = 1 Then Exit Sub
      
      If (Cells(1, Target.Column) * Cells(Target.Row, 1)) = Target.Value Then
          With Target.Interior
              .Pattern = xlSolid
              .PatternColorIndex = xlAutomatic
              .ThemeColor = xlThemeColorLight2
              .TintAndShade = 0.799981688894314
              .PatternTintAndShade = 0
          End With
          Else
              With Target.Interior
                  .Pattern = xlSolid
                  .PatternColorIndex = xlAutomatic
                  .Color = 12632310
                  .TintAndShade = 0
                  .PatternTintAndShade = 0
              End With
              Application.EnableEvents = False
              Range("AI9").Value = Cells(1, Target.Column) * Cells(Target.Row, 1)
              Application.EnableEvents = True
      End If
      
      
      End Sub
      
      1. 点击保存(靠近左上角)并关闭VBA窗口
      2. 你的表应该按你想要的那样(你有多个列,它也可以工作)
      3. 注意:如果你想改变输入正确答案的单元格(与AI9相同),只需用&#34; AI9&#34;在我的代码的底部。

        我已经在我自己的excel上运行它并且它完美无缺

答案 1 :(得分:0)

我无法弄清楚如何在评论中添加照片,所以我不得不将此图片添加为新答案

enter image description here