首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用VBA将零星的#N/A单元替换为公式

VBA是Visual Basic for Applications的缩写,是一种用于Microsoft Office应用程序的宏语言。它可以用于自动化处理Excel、Word、PowerPoint等Office软件中的任务。

在Excel中,#N/A是一种错误值,表示某个公式无法返回有效的结果。如果需要将零星的#N/A单元替换为公式,可以使用VBA编写一个宏来实现。

下面是一个示例的VBA代码,用于将选定范围内的所有#N/A单元格替换为指定的公式:

代码语言:txt
复制
Sub ReplaceNAsWithFormula()
    Dim rng As Range
    Dim cell As Range
    
    ' 选择要替换的范围
    Set rng = Selection
    
    ' 循环遍历每个单元格
    For Each cell In rng
        ' 检查单元格是否为#N/A
        If IsError(cell.Value) And cell.Value = CVErr(xlErrNA) Then
            ' 将#N/A替换为公式
            cell.Formula = "=YourFormulaHere"
        End If
    Next cell
End Sub

请将代码中的"YourFormulaHere"替换为你想要使用的公式。然后,在Excel中按下Alt+F11打开VBA编辑器,将代码粘贴到一个模块中。保存并关闭VBA编辑器后,你可以在Excel中按下Alt+F8来运行宏。

这段代码会遍历选定范围内的每个单元格,如果发现单元格的值为#N/A,则将其替换为指定的公式。你可以根据实际需求修改代码中的范围选择方式和公式。

这是一个使用VBA将零星的#N/A单元替换为公式的示例。希望对你有帮助!如果你对VBA或其他云计算相关的问题有更多疑问,请随时提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

VBA中最强大命令:Evaluate

例如,直接在VBA使用工作表公式,Evaluate就可以做到: Sub Neato() MsgBox Evaluate("SUM(A1:A6)") End Sub 当然,你可以不使用Evaluate...还有一个“秘密”就是,也可以在定义单元格区域名称中使用EVALUATE,因此有一些方法可以在不使用VBA情况下访问单元公式中EVALUATE功能。...Evaluate基本功能如下: 1.数学表达式字符串转换为值。 2.一维和二维字符串数组转换为它们等效数组。 3.能够处理工作表单元格可以处理任何公式。 真的,它可以做单元格能做任何事情!...它包含工作表单元所有功能,而“该单元格”包含在VBA命令中。事实上,它甚至可以做单元格不能做事:可以返回整个数组。...Evaluate允许处理公式: '行为类似单元用户窗体文本框 '允许一个文本框里包含另一个文本框要用公式 Private Sub TextBox1_Change() On Error Resume

64320

Excel公式练习55: 获取重复数据出现最大次数

本次练习是:给定一个单元格区域,要求使用公式得到该区域中出现重复次数最多数据重复次数。如下图1所示,在单元格区域A1:F1中,重复次数最多数据是“完美Excel”,重复次数是3。 ?...公式解析 公式可以解析为: =MAX(COUNTIF({"VBA","完美Excel","完美Excel","VBA","Office365","完美Excel"},{"VBA","完美Excel","...{2,3,3,2,1,3} 这样,公式可转换为: =MAX({2,3,3,2,1,3}) 得到: 3 即重复数据出现次数最大值。...扩展 运用上述技术,可以获取指定数据在单元格区域中出现次数,如下图2所示,要求“VBA”和“完美Excel”在单元格区域A1:F1中出现次数。 ?...图2 选择单元格区域A4:B4,输入数组公式: =COUNTIF(A1:F1,A3:B3) 即可获得结果。

3.2K10

Excel: 批量“假”空单元格转换为单元

这些单元格实际上并非真正单元格,例如一些由公式返回空字符串"",选择性粘贴为数值后就会形成这样“假”空单元格。...要判断一个单元格是否为真正单元格,可以用ISBLANK函数,如判断B3单元格: =ISBLANK(B3) 公式返回TRUE就表明B3单元格为真的空单元格,返回FALSE则为“假”空单元格。...值得一提是,在Excel中,查找对话框替换功能无法处理空字符串""。当你尝试使用查找对话框单元格B3中空字符串替换为空时,Excel无法识别这个空字符串,因此无法进行替换操作。...下面介绍两种方法,可以快速批量“假”空单元格转换为单元格。 事前工作:选中单元格区域(B2:B7),复制,选择性粘贴为数值,这样在单元格区域(B2:B7)内,就会存在“假”空单元格。...方法二(VBA代码): 通过VBA代码也可以所选区域中“假”空单元格转换为真的空单元格,假设这些“假”空单元格仅包含空字符串。

20010

这些掌握了,你才敢说自己懂VBA

(1)青铜小白-符号运算 (2)铂金老鸟-公式运算 (3)王者大牛-代码运算 有经验同学,看到这里,肯定嘴角上扬45度,“我用公式就能轻松实现,何必用VBA呢?”...不错,用公式确实能够实现上述案例结果,但是,VBA拥有公式无可比拟优越性: 第一,公式无法使用「按钮控件」; 第二,日常工作场景一般会涉及加减乘除等综合运算,如果我们使用公式就会格外复杂而难以控制...程序名称尽量采用英文 c. 1对圆括号为输入法「英文模式下」输入内容 (7)题目分析 我们题目翻译为白话就是:计算「单元格A4」和「单元格C4」和,结果写入「单元格E4」中 (8)开始写代码...我们按照正常思考思路,在代码块区域输入“单元格E4 等于 单元格 A4 加上 单元格C4”,按下键盘「Enter」,发现立刻报错,我们看到: a....指定区域英文首字母自动转换为大写」小程序,大家可以直接拿去用,也可以分析一下那个代码。

36730

这些掌握了,你才敢说自己懂VBA

(1)青铜小白-符号运算 image.png (2)铂金老鸟-公式运算 image.png (3)王者大牛-代码运算 image.png 有经验同学,看到这里,肯定嘴角上扬45度,“我用公式就能轻松实现...不错,用公式确实能够实现上述案例结果,但是,VBA拥有公式无可比拟优越性: 第一,公式无法使用「按钮控件」; 第二,日常工作场景一般会涉及加减乘除等综合运算,如果我们使用公式就会格外复杂而难以控制...程序名称尽量采用英文 c. 1对圆括号为输入法「英文模式下」输入内容 (7)题目分析 我们题目翻译为白话就是:计算「单元格A4」和「单元格C4」和,结果写入「单元格E4」中 image.png...(8)开始写代码 我们按照正常思考思路,在代码块区域输入“单元格E4 等于 单元格 A4 加上 单元格C4”,按下键盘「Enter」,发现立刻报错,我们看到: a. ...指定区域英文首字母自动转换为大写」小程序,大家可以直接拿去用,也可以分析一下那个代码。

3.7K01

Excel VBA解读(139): 用户定义函数计算了多次

当被修改后Excel重新计算工作簿时,计算引擎通过计算最近修改公式开始,然后对剩余公式使用最新计算序列。...现在,如果清除立即窗口中数据,并再次计算公式而不改变任何内容(使用Ctrl+Alt+F9),此时单元格A3仅重新计算一次,因为Excel正在重复使用先前重新计算最终计算序列。...例如,如果所有参数都被定义为Double,那么Excel将在参数传递给用户定义函数之前尝试参数强制转换为Double,如果参数实际引用了未计算单元格,则不会调用用户定义函数。...由函数向导引起多个用户定义函数重新计算 每当函数向导与用户定义函数一起使用时,用户定义函数会被多次调用,因为在输入函数参数时,函数向导使用评估动态显示函数结果。...使用结果返回到多个单元数组用户定义函数是加速用户定义函数执行一种非常好方法(请参阅前面的文章),但是应该注意一个导致速度减慢Bug: 当输入或修改多单元格用户定义函数并且取决于易失性公式

1.8K30

VBA: 通过Application.OnTime定时执行程序(2)

另外,提供了一份VBA代码,可以遍历各个单元格,假装对单元格内内容进行编辑,借助Application.OnTime函数定时执行该程序。...1 旧方案 实际运行过程中发现,如果自定义函数运行时间短,则没问题;如果文件夹内文件较多,耗时较长的话,则可能会弹出如下对话框: 出现报错VBA代码如下: Sub RefreshCustomFunction...Sheet1"替换为工作表名称 Set rng = ws.Range("C2:C9") '"C2:C9"替换为单元格区域 For Each cell...2 新方案 之前策略是,遍历各个单元格,假装对单元格内内容进行编辑,从而让自定义函数重新计算;现在采取策略是,先在第一个单元格上填写公式,然后向下自动填充,在其他单元格内添加公式,从而让自定义函数重新计算...Range Dim cell As Range Set ws = ThisWorkbook.Worksheets("test") '"test"替换为工作表名称

21500

Excel实战技巧:基于单元值显示相应图片

选择包含国旗任一单元格,按Ctrl+C或者单击功能区中“复制”按钮复制该单元格,再选择一个不同单元格(示例中是单元格E2),单击功能区“开始”选项卡中“粘贴——链接图片”,显示被粘贴图片,...选择该图片,在公式栏中输入: =CountryLookup 选择单元格D2,使用数据验证创建包括列A中国家名称列表下拉列表。...这样,在单元格D2中选择国家名称,在单元格E2中显示该国家国旗图片。 当然,如果使用Microsoft 365,那么还可以使用XLOOKUP函数来编写查找公式。...方法2:使用图表填充+#N/A 与上面相同,在单元格D2中创建数据验证列表,可以在下拉列表中选择国家名。 首先,创建一个所选国家计算为1,其他国家计算为#N/A公式。如下图4所示。...图4 可以看到,在单元格B2中公式为: =IF(VLOOKUP(A2,D2,1,0)=A2,1,NA()) 如果单元格D2中值与列A中相应值相同,则公式返回1,否则返回#N/A。

8.4K30

VBA: 禁止单元格移动,防止单元公式引用失效(2)

文章背景: 在Excel中,公式引用无效单元格时显示 #REF! 错误。当公式所引用单元格被删除或被粘贴覆盖时最常发生这种情况。...为了防止单元格被人不小心移动,可以通过禁用自动填充功能来实现(参见延伸阅读)。...使用VBA代码:Application.CellDragAndDrop = False ,虽然可以避免单元格被移动,但也存在一个问题,如果复制其他工作簿内容,再回到本工作表内进行粘贴时,发现数据无法粘贴...为了在禁用自动填充功能同时,依然可以在本工作表内正常跨表粘贴数据,在查阅相关资料之后,找到了可以实现这样要求VBA代码。 示例: 在本工作簿内,原始数据保存在sheets("源数据")这张表内。...: 禁止单元格移动,防止单元公式引用失效

1.1K30

《Python for Excel》读书笔记连载1:为什么为Excel选择Python?

与你手工操作Excel电子表格相比,自动化消除了人为错误风险,并允许你更多时间花在更高效任务上。你可以考虑VBA,也可以考虑Python,特别是对于数据量大和公式工作簿。...这个应用程序工作方式是:分别在单元格A4和B4中输入金额和货币,Excel将在单元格D4中将其转换为美元。...业务层 负责特定应用程序逻辑:单元格D4定义如何金额转换为美元。公式: =A4*VLOOKUP(B4,F4:G11,2,FALSE) 转换为金额乘以汇率。...如果你有多个一直在使用函数,可能希望在工作簿之间共享它们。跨工作簿共享VBA代码标准工具是加载宏,但VBA加载宏缺乏一种可靠分发和更新方式。...然而,这是一种危险策略:Excel使引入难以发现错误变得容易。例如,可以使用硬编码值覆盖公式,或者忘记调整隐藏列中公式。 当告诉专业软件开发人员测试他们代码时,他们会编写单元测试。

5.2K20

VBA变量5年踩坑吐血精华总结

是的,那么我们用VBA如何实现呢? image.png 我们观察发现:行号是变化,而且是「正向递增加1」规律。 在VBA中,我们这种根据需要能够随时变化称为变量。...F1值为 28,单元格H1值为30,计算二者之间值 image.png (6)最后,二者乘积赋值给「单元格F1」,并执行值写入操作 image.png 通过,以上我们使用VBA变量使我们程序更加灵活...但是这样操作,有以下几点缺点: 1)程序写起来特别的长,非常容易出错; 2)代码不易维护,修改难度大; 3)VBA从内存中读取变量时间要远低于读取单元时间; 因此,可以总结使用变量有以下好处(拿小本本记好...(1)单元格C3」也就是Cells(3, 3)数值取出来,赋值给变量x,那么变量x现在就是「长」 image.png (2)用变量y代表长方形面积,根据「长方形面积 = 长 * 宽」公式写为「...但是,大家需要注意给VBA中变量取名字 需要注意以下几点: (1)尽量使用有意义名字,且尽量使用英文或拼音命名 一方面,变量命名有意义就是大家可以读懂,知道变量表达意义,增强代码可读性。

1.6K00

Excel公式技巧14: 在主工作表中汇总多个工作表中满足条件

在《Excel公式练习32:包含空单元多行多列单元格区域转换成单独列并去掉空单元格》中,我们讲述了一种方法,给定由多个列组成单元格区域,从该区域返回由所有非空单元格组成单个列。...本文提供了一种方法,在给定一个或多个相同布局工作表情况下,可以创建另一个“主”工作表,该工作表仅由满足特定条件所有工作表中数据组成。并且,这里不使用VBA,仅使用公式。...A2:F10") 转换为: INDIRECT("'Sheet1'!A2:F10") 因此,可以看到,对于A2中公式返回Sheet1。...实际上,该技术核心为:通过生成动态汇总小计数量数组,该小计数量由来自每个工作表中符合条件(即在列D中值为“Y”)行数组成,然后公式所在单元格相对行数与该数组相比较,以便有效地确定公式所在行中要指定工作表.../A,#N/A,4,4,6},{1,2,3,4,5,6}) 转换为: =IFERROR({#N/A,#N/A,#N/A,1,2,1},{1,2,3,4,5,6}) 得到: {1,2,3,1,2,1} 正是我们需要参数

8.8K21

使用VBA操作Excel公式

标签:VBA 在Excel公式栏中,我们可以看到当前单元格中内容,或者当前单元格中使用公式,如下图1所示。 图1 我们也可以使用VBA来操作公式栏,作出一些变化。...通常我们会使用两个属性,一个是DisplayFormulaBar属性,用于设置是否显示/隐藏公式栏;一个是FormulaBarHeight属性,用于设置公式高度。...下面我们列举两个示例来看看VBA是怎么操控公式。 示例1:对指定列自动增加公式栏高度 当用户当前单元格置于指定列时,公式栏自动增加高度。...例如,当前单元格位于列C时,公式栏会向下扩展,从而显示更多内容;位于其他列时,恢复原高度。...图2 示例2:对指定单元格隐藏公式栏 有时候,我们不想让用户直接看到我们所使用公式,此时就可以在用户单元格移到指定单元格时,隐藏公式栏。 例如,当用户单元格移至列D时,隐藏公式栏。

1.4K20

Excel公式练习:根据条件获取唯一n个值(续)

本次练习是:在《Excel公式练习:根据条件获取唯一n个值》中,编写了一个公式用于显示数据(Data)列中与当前选定查找项目匹配项目(Item)列n个最大唯一值。...然而,如果n是6,而我们只有3个唯一值,那么编写公式应该返回0。 这里,你任务是修改这些公式,以便在上面所说情况下,返回最小非零唯一值。 示例数据如下图1所示。...图1 其中,单元格区域A2:A13命名为“i”,单元格区域B2:B13命名为“d”,单元格D2命名为“n”,单元格E2命名为“l”。...单元格D2、E2中数据可以输入,公式根据其数据返回相应结果。根据不同输入数据,公式结果应该如下图2所示。 图2 规则: 1.公式中不能使用整列引用。 2.不能使用中间公式。...3.不能使用VBA。 4.无论数据放置在工作表中任何地方,公式都能正常运行。 5.除了规定名称“i”“d”“n”“l”外,不能有其它硬编码引用。 请写下你公式。 解决方案 公式1:数组公式

1.8K10

Excel公式练习:根据条件获取唯一n个值

本次练习是:编写一个公式,用于显示数据(Data)列中与当前选定查找项目匹配项目(Item)列n个最大唯一值。 示例数据如下图1所示。...图1 其中,单元格区域A2:A13命名为“i”,单元格区域B2:B13命名为“d”,单元格D2命名为“n”,单元格E2命名为“l”。...单元格D2、E2中数据可以输入,公式根据其数据返回相应结果。根据不同输入数据,公式结果应该如下图2所示。 图2 规则: 1.公式中不能使用整列引用。 2.不能使用中间公式。...3.不能使用VBA。 4.无论数据放置在工作表中任何地方,公式都能正常运行。 5.除了规定名称“i”“d”“n”“l”外,不能有其它硬编码引用。 请写下你公式。 解决方案 公式1:数组公式。...=LARGE((MATCH(l&d,i&d,)=ROW(i)-MIN(ROW(i)-1))*(i=l)*d,n) …… 上面列出大多数公式都没有进行详细解析,有兴趣朋友可以参照前面文章给出方法逐个研究

2.2K30

Excel实战技巧109:快速整理一列数据拆分成多列

如果你工作簿中数据如下图1所示。 图1 而你想把它们转换成如下图2所示。 图2 你可以使用多种方法,包括:使用VBA,创建数组公式,编写多个公式,等等。...本文将给你展示一种“最懒”方法,也可能是最快且最容易方法。 第1步:设置标题 如下图3所示,在单元格E3:G3中输入标题。...图3 第2步:创建引用公式单元格E4至G4中创建单元格引用,如下图4所示代表想要看到单元格中数据。...图4 第3步:等号更换为“Ex” 使用“Ex”替换掉单元格E4至G4中等号,如下图5所示。...图7 第6步:“Ex”引用转换成真实公式 选择包含“Ex”所有单元格,按下Ctrl+H组合键,弹出“查找和替换”对话框。在“查找内容”中输入“Ex”,在“替换为”中输入“=”,如下图8所示。

1.7K10

【Excel】用公式提取Excel单元格中汉字

所以总结了一下提取汉字几种情况。 一、用公式提取Excel单元格中汉字 对于一个混杂各种字母、数字及其他字符和汉字文本字符串,要提取其中汉字,在Excel中通常可用下面的公式。...说明:公式先用MID函数字符串中每个字符分解到到一个字符数组中,然后用LENB函数返回各字符字符数,对于汉字会返回“2”。...CreateObject("VBScript.RegExp") With regEx '搜索整个字符串 .Global = True '匹配非汉字 .Pattern = "[^\u4e00-\u9fa5]" '字符串中非汉字替换为空...返回Excel工作表界面,在B14单元格中输入公式: =提取汉字(A14) 即可取得A14单元格字符串中所有汉字。 二、用公式提取引号(某2个相同字符)之间内容 ?...(A2,"'",""))))-FIND("'",A2)-1) 在excel中,如何查询字符串N次出现位置,或最后一次出现位置,使用公式: 最后一次出现位置 =FIND("这个不重复就行",SUBSTITUTE

6.2K61
领券