VBA代码实现需求:查找C11-C800中C5的值并写入对应A列单元格
需求可行性分析及实现代码
当然可行!这个需求用VBA完全能轻松实现,下面我给你提供具体的代码,再讲讲怎么操作触发:
实现代码
打开Excel的VBA编辑器(按下Alt + F11),插入一个新模块,把下面的代码粘贴进去:
Sub MatchAndWriteValue() Dim ws As Worksheet Dim searchRange As Range Dim cell As Range Dim searchValue As Variant Dim writeValue As Variant ' 设置要操作的工作表(这里用当前激活的工作表,你也可以改成具体表名,比如Sheets("Sheet1")) Set ws = ActiveSheet ' 定义搜索区域:C11到C800 Set searchRange = ws.Range("C11:C800") ' 获取要查找的值(C5单元格) searchValue = ws.Range("C5").Value ' 获取要写入的值(C4单元格) writeValue = ws.Range("C4").Value ' 遍历搜索区域的每个单元格 For Each cell In searchRange ' 如果找到匹配的值 If cell.Value = searchValue Then ' 将C4的值写入对应行的A列 ws.Cells(cell.Row, "A").Value = writeValue ' 如果你只想匹配第一个结果就停止,就取消下面这行的注释 ' Exit For End If Next cell ' 可选:提示操作完成 MsgBox "操作完成!已完成匹配并写入对应值。", vbInformation End Sub
触发方式设置
- 回到Excel界面,点击顶部菜单栏的开发工具(如果没看到,去文件→选项→自定义功能区勾选“开发工具”)
- 点击插入,选择按钮(窗体控件),在工作表上画一个按钮
- 弹出的“指定宏”窗口里,选中刚才的
MatchAndWriteValue宏,点击确定 - 以后点击这个按钮,就会自动执行查找和写入操作啦
注意事项
- 如果C5单元格的值是文本,代码会精确匹配;如果是数字,会匹配数值相等的单元格
- 如果要匹配所有符合条件的单元格,就保留代码里的循环(不要打开
Exit For的注释);如果只需要第一个匹配项,就把Exit For的注释去掉
内容的提问来源于stack exchange,提问作者Prezftb09
相关产品推荐
相关产品推荐

