excel - 无法使用列标题搜索和替换值
问题描述
我正在尝试创建一个 vba 脚本,它将在列下的所有单元格中搜索_ 。Crude Items
但是,当它找到一个时,它会将值从_中拆分出来,并将其余的值放在Refined Ones
列下的相应单元格中。
我已经尝试过以下完美无瑕的工作,但我希望使用列标题搜索和替换值:
Sub CopyAndReplace()
Dim cel As Range
For Each cel In Range("A2:A" & Cells(Rows.Count, 1).End(xlUp).row)
If cel.value <> "" Then
Sheets("Sheet1").Range(cel(1, 3).Address) = Split(cel, "_")(1)
End If
Next cel
End Sub
为了让您可视化工作表的外观:
如何使用列标题搜索和替换值?
解决方案
我不确定这是你所追求的,但有一些重要的提及......
在编写代码时,尽量始终使用至少一个工作表限定符。您的程序如何才能明确知道您希望它在哪里运行?
我稍微改变了你的过程,但同样,不确定这是否正是你所追求的。请参见下面的代码。
Sub SplitByHeader()
Dim i As Long
Dim crudeHeader As Range, refinedHeader As Range
Dim ws As Worksheet
'set ws
Set ws = ThisWorkbook.Sheets("Sheet1")
'set header ranges
Set crudeHeader = ws.Rows(1).Find(What:="Crude Items", LookAt:=xlWhole)
Set refinedHeader = ws.Rows(1).Find(What:="Refined Ones", LookAt:=xlWhole)
'simple error handler
If crudeHeader Is Nothing Or refinedHeader Is Nothing Then Exit Sub
For i = 2 To ws.Cells(ws.Rows.Count, crudeHeader.Column).End(xlUp).Row
If ws.Cells(i, crudeHeader.Column).Value <> "" Then
ws.Cells(i, refinedHeader.Column).Value = Split(ws.Cells(i, crudeHeader.Column).Value, "_")(1)
End If
Next i
End Sub
推荐阅读
- dagster - 如何定义具有多个参数的复合实体,包括“Nothing”?
- reactjs - 寻找一种在 create-react-app 中渲染响应式图像 srcSet 的好方法
- firebase - 点击任何动态链接时,Firebase 动态链接 onDynamicLink() 函数不会触发
- php - 禁用将特定订单状态(处理中)的库存增加到已取消订单
- arrays - 有什么方法可以初始化不带括号的数组吗?
- wordpress - 如何在托管程序中发布 wordpress 网站?
- haskell - 为什么使用`Path(..)`导入时“'Path'的数据构造函数并不都在范围内”
- node.js - 使用 node-fetch 的 json 间歇性下载失败
- arrays - 如何使用 React onClick 事件将对象作为参数传递?
- angular - AngularFirestore:检索集合中的文档引用并将其映射到类