如果满足条件,Excel将替换单元格值

如果满足条件,Excel将替换单元格值,excel,Excel,我的excel工作表有许多行,如下所示: A B C(0) D(1) E(2) F(3) G(4) H(5) I(6) J(7) H'000C78:......):H'001D:H'002D:H'002D:H'002B:H'002B:H'002B:H'002B:H'002B: H'000C80:......):H'002B:H'002B:H'002B:H'002B:H'002B:H'002B:H'002B:H'002B: 我只对值为“H'

我的excel工作表有许多行,如下所示:

  A        B       C(0)   D(1)   E(2)    F(3)  G(4)   H(5)  I(6)   J(7)
H'000C78:......):H'001D:H'002D:H'002D:H'002B:H'002B:H'002B:H'002B:H'002B:
H'000C80:......):H'002B:H'002B:H'002B:H'002B:H'002B:H'002B:H'002B:H'002B:
我只对值为“H'002B”的单元格感兴趣。 要求获得具有以下条件的值列表:

如果在任何列C-J中发现“H'002B”,则包含“H'002B”的单元格将转换为该列值的+十六进制

例如:
第1行F列H'002B应变为H'000C78+H'3=H'C7B

我想要的列表的第一个值应该是H'C7B

为此苦苦挣扎(对所有值使用HEX2DEC,然后编写一个IF语句,比如=IF(C1=“43”,“A1+0”))。
感谢您的帮助。

如果您想“就地”替换十六进制值,则必须实现某种VBA。这个简短的例行程序识别并调整从活页1放射出的单元格块内出现的所有
H'002B
!A1

Sub addHexColumn()
    Dim fnd As String, fndr As Range

    fnd = "H'002B"
    With Worksheets("sheet1")
        With .Cells(1, 1).CurrentRegion
            Set fndr = .Cells.Find(What:=fnd, LookIn:=xlValues, LookAt:=xlWhole)
            Do While Not fndr Is Nothing
                fndr = "H'" & Application.Dec2Hex(Application.Hex2Dec(Split(.Cells(fndr.Row, 1).Value2, Chr(39))(1)) + (fndr.Column - 3), 4)
                Set fndr = .FindNext(after:=fndr)
            Loop
        End With
    End With
End Sub
这大致相当于将以下公式应用于F1

="H'"&DEC2HEX(HEX2DEC(RIGHT(A1,4))+COLUMN(F1)-3, 4)
这可能会随着事件宏或甚至事件宏的实现而进一步自动化,但取决于工作表的其余部分在做什么,这可能不是一种有效的资源消耗


addHexColumn子列之前的示例数据



添加HexColumn sub后的样本数据

编辑您的问题,将您的“挣扎”(工作与否)包括在内,或许我们可以提供帮助。我已经写下了我尝试的内容。请帮忙。为什么F1值会变成H'002E?我预计它会变成H'C78+H'2B=H'ca3似乎数学是错的。等效工作表公式的哪一部分不正确?你能纠正VBA代码来补偿吗?数学没有错。我认为这个公式只是做H'2B+H'3=H'2E。如果公式可以更改为H'2B+H'C78=H'CA3。我尝试了vba,但工作簿每次都挂起。因此公式应该是
=“H'”&DEC2HEX(HEX2DEC(RIGHT(A1,4))+列(F1)-3,4)
,其中它从第一列获取十六进制值。在这种情况下,数学中的
fndr.Value2
应该是
.Cells(fndr.Row,1).Value2