在具有红色填充的列中将公式插入每个单元格[关闭]

Posted

技术标签:

【中文标题】在具有红色填充的列中将公式插入每个单元格[关闭]【英文标题】:Insert a formula into every cell with in a column that has red fill [closed] 【发布时间】:2022-01-24 00:36:42 【问题描述】:

我需要将公式栏中的公式仅插入到具有红色填充的单元格中。我之所以选择这种方法,是因为我需要将公式插入到列 (J) 中,但每个月只插入一次……然后我需要从另一个表中获取另一个月的数据。(我会调整 vlookup 公式以搜索另一个表。然后,我将重复该过程并仅插入该特定月份的数据。如果您对构建宏执行此操作有任何建议,请告诉我。

【问题讨论】:

你能告诉我们你到目前为止的代码,让我们知道你遇到的问题是什么吗? 到目前为止我还没有任何代码,因为我根本不知道如何在 VBA 中设置它 也许开头是:***.com/q/38094487/4961700 【参考方案1】:

为您设计了一个模板来提供帮助。 [这里][1]/截图参考:

我介绍了两种方法 - 宏和无宏(顺便说一句,速度非常快 - 你可能也想看看)。

在详细介绍之前,我已经草草写了一些“快速入门”步骤...

1。快速入门指南

步骤 1-3

    将下面的第一个 VB 模块(即 Insert_1)复制/粘贴到您的 VB 项目/工作簿中的模块中(确保您的工作簿已启用宏,例如文件类型:.xlsb 或 .xlsm 等)

    转到您的工作簿/工作表,选择一个未使用的单元格并将名称命名为 rng_fn:通常只需在 Excel 窗口左上角的窗格中/功能区中的文件命令下方输入此名称:

[![快速访问命名范围 - 窗口窗格,Excel][2]][2]

在此单元格中包含您的函数

    对不同的单元格重复第 2 步,将其命名为“rng_col”-

将此颜色与您要插入上述 3 中的函数的其他单元格颜色相同

rng_fnrng_col 中分别指定/插入函数和颜色后,您就可以开始了:只需运行Insert_1 宏,然后看着它变得栩栩如生!


2。宏方法

![带有用户输出模板的链接工作簿[2]][3]

描述

本节包含两个宏:

    Insert_1 - 执行您所要求的操作:即将您在特定单元格中指定的函数复制到具有您在另一个单元格中指定的相同颜色阴影的所有单元格中) Clear_1 - 1 的反转(从具有相应颜色阴影的任何单元格中删除所有内容)

VB 代码

Sub Insert_1()

    Application.ScreenUpdating = False
    calc_mode = Application.CalculationState

    Application.Calculation = xlCalculationManual

    Range("rng_fn").Activate
    ActiveCell.Copy
    Application.FindFormat.Interior.ColorIndex = Range("rng_col").Interior.ColorIndex
    
        
    Range("A1").Select

    Set Rng = Range(Selection, Selection.SpecialCells(xlLastCell))
    For Each cell In Rng
        cell.Select
        If cell.Address <> Range("rng_col").Address And cell.Address <> Range("rng_fn").Address Then
            If Selection.Interior.ColorIndex = Range("rng_col").Interior.ColorIndex Then
                Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
                SkipBlanks:=False, Transpose:=False
            End If
        End If
        
    Next
    ActiveSheet.Calculate
    Application.ScreenUpdating = True
    
    Application.Calculation = calc_mode

End Sub

Sub clear_1()

    
    Application.ScreenUpdating = False
    '...save current state for later...
    calc_mode = Application.CalculationState
    
    '...temporarily change to manual mode to speed up calcs/updates when running macro
    Application.Calculation = xlCalculationManual
    

    'determines the colour based upon a named range within the workbook ('rng_col') and shall use this index to search entire worksheet for other cells that have the same / identical colour shading index...
    Application.FindFormat.Interior.ColorIndex = Range("rng_col").Interior.ColorIndex
    
        
    Range("A1").Select

    Set Rng = Range(Selection, Selection.SpecialCells(xlLastCell))
    For Each cell In Rng
        cell.Select
        'following will ensure that user input section remains in tact:
        If cell.Address <> Range("rng_col").Address And cell.Address <> Range("rng_fn").Address Then
            If Selection.Interior.ColorIndex = Range("rng_col").Interior.ColorIndex Then
                Selection.ClearContents

            End If
        End If
        
                                                                                                                                                                       Next
    ActiveSheet.Calculate
    Application.ScreenUpdating = True
    
    'put calculation back to state prior to running code
    Application.Calculation = calc_mode

End Sub

3。无宏方法

步骤 1-6

    在任何单元格(不是阴影单元格之一)中插入公式并将其复制到剪贴板(即只需选择单元格并按Ctrl+C) - 就我而言,我在单元格 B5 中输入了A5+A4(修改公式根据需要使用项目符号“$”修复单元格) 在每个屏幕截图中选择一组包含所需目标单元格(即“红色阴影”)的连续单元格(我的屏幕截图为黄色:)

[![第 2 步 - 选择包含目标格式单元格的连续单元格][4]][4]

    Ctrl + F 打开查找/替换对话框 -> 在此 UI 的“查找”选项卡中选择“选项”,选择相关格式(您为红色 - 我为黄色),指定“工作表内”,其他选项(匹配大小写/按行或列、公式/值等)没有区别。

[![第 3 步 - 查找对话框][5]][5]

    选择“查找全部”并选择显示在此 UI 底部的每个条目(即从第一个/顶部开始,按住 shift 并按向下箭头以选择多个)- 或通过选择最顶部并按 ctrl + 一次性完成移+下。 当你这样做时,看到背景中相应的格式化单元格一个接一个地被选中,这种感觉很满足……

[![第 4 步 - 在 UI 中选择多个单元格引用][6]][6]

瞧!回想一下,我们将函数方便地存储在剪贴板中(步骤 1) - 粘贴函数非常简单,可以同时完成如下操作:

    关闭查找/替换 UI 窗口 - 您的红色格式单元格仍应处于选中状态(如果没有,请返回并逐字执行步骤 1-4,返回并完全按照显示的步骤重复步骤 - 此尝试出现问题) .

    Alt + E + S(即粘贴特殊对话框/UI界面);选择“粘贴功能”并按 OK。

完成!

[![第 6 步:将第 1 步中的公式同时粘贴到所有阴影单元格中][7]][7]

直接

----------


  [1]: https://1drv.ms/x/s!AsxYl9DXJ0j9gYdZdhbDJhu2PeHK_g?e=fARbCY
  [2]: https://i.stack.imgur.com/iyevl.png
  [3]: https://i.stack.imgur.com/Rjyzm.png
  [4]: https://i.stack.imgur.com/Nmopx.png
  [5]: https://i.stack.imgur.com/JvlLv.png
  [6]: https://i.stack.imgur.com/Shcvw.png
  [7]: https://i.stack.imgur.com/vNdI2.png

【讨论】:

以上是关于在具有红色填充的列中将公式插入每个单元格[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

将日期范围自动填充到excel单元格中

将公式应用于单元格下拉列表的脚本

具有变化范围的自动填充/填充公式

Excel中单元格名称的自动填充公式

具有多种条件的Google脚本条件格式

如何隔行设置单元格填充色,如奇数列为红色,偶数列为绿色,请高手指教!