VBA新手求助:如何创建可公式调用的函数为现有单元格加指定文本?
用VBA创建添加文本的自定义函数
步骤1:打开VBA编辑器
按 Alt + F11 快速打开VBA编辑器;要是找不到入口,也可以点击Excel顶部「开发工具」选项卡的「Visual Basic」按钮(没看到开发工具的话,去「文件→选项→自定义功能区」勾选显示)。
步骤2:插入模块
在左侧「工程资源管理器」里,右键点击你的工作簿名称,选择「插入→模块」。
步骤3:编写自定义函数代码
把下面的代码粘贴到新建的模块里:
Function AddBrand(rng As Range) As String ' 给目标单元格内容前添加"Brand "(后面的空格可按需删掉或调整) AddBrand = "Brand " & rng.Value End Function
代码简单说明:
AddBrand是这个自定义函数的名字,你可以改成自己喜欢的,但调用时要对应这个名字。rng As Range表示函数需要你指定一个单元格作为输入参数。- 最后一行代码是把"Brand "和目标单元格的原有内容拼接起来,作为函数返回的结果。
步骤4:在单元格里调用函数
比如你要给A2单元格的内容加上“Brand”,就在任意单元格(比如B2)输入公式:=AddBrand(A2)
按回车就能看到结果,下拉填充还能批量处理整列的内容。
补充:直接修改原单元格的方法(用宏)
如果想直接修改A列原单元格的内容(不是返回结果到其他单元格),自定义函数做不到(Excel限制自定义函数修改其他单元格),这时候可以用宏:
Sub AddBrandToColumnA() Dim lastRow As Long Dim i As Long ' 找到A列最后一行有内容的单元格 lastRow = Cells(Rows.Count, 1).End(xlUp).Row ' 遍历A列第2行到最后一行(假设第1行是表头,按需调整起始行) For i = 2 To lastRow Cells(i, 1).Value = "Brand " & Cells(i, 1).Value Next i End Sub
运行这个宏的话,直接在VBA编辑器里按F5,或者给它加个按钮放在工作表上,点击就能批量修改A列内容。
内容的提问来源于stack exchange,提问作者Nippun Chakravarthy
相关产品推荐
相关产品推荐

