gpt4 book ai didi

excel - VBA excel中的替换函数

转载 作者:行者123 更新时间:2023-12-04 22:01:59 28 4
gpt4 key购买 nike

所以,我有一堆需要用字母替换的列,这是旧的签名过冲的东西。
所以基本上我想做的是用数字替换字母,然后将每个单元格乘以 0.02。

但是我想这样做,这样我就可以指定我的范围,然后在新的工作表中输出这个新信息。

所以基本上,我会有一个类似的专栏
1. 0000012C = 00000123 x 0.02 = 2.46
2. 0002927B = 29272 x 0.02 = 585.44

Private Sub CommandButton1_Click()
Dim OriginalText As String
Dim CorrectedText As String

OriginalText = Range("A1:D15").Value

CorrectedText = Replace(OriginalText, "A", "1")
CorrectedText = Replace(OriginalText, "B", "2")
CorrectedText = Replace(OriginalText, "C", "3")
CorrectedText = Replace(OriginalText, "D", "4")
CorrectedText = Replace(OriginalText, "E", "5")
CorrectedText = Replace(OriginalText, "F", "6")
CorrectedText = Replace(OriginalText, "G", "7")
CorrectedText = Replace(OriginalText, "H", "8")
CorrectedText = Replace(OriginalText, "I", "9")
CorrectedText = Replace(OriginalText, "{", "0")
CorrectedText = Replace(OriginalText, "}", "-0")

Worksheets("Sheet1").Range("F1:I15").Value = CorrectedText
End Sub

这是我到目前为止所拥有的,但我认为我做的不正确,任何在 excel 中有更多 vb 经验的人都可以看看。

最佳答案

有几件事。

  • 您需要使用 For Each 逐个循环遍历每个单元格。环形。
  • 不需要更正的文本。只需保持原始文本中的值。您拥有它的方式将用每个新行替换更正的文本,以便唯一显示的将是最后一个,通过仅使用原始文本,它会保存每次替换时的更改。
  • 使用偏移量将值放入正确的单元格中。
    Dim OriginalText As String
    Dim cell As Range
    Dim aws As Worksheet
    Dim dws As Worksheet

    Set aws = ActiveSheet
    Set dws = ActiveWorkbook.Sheets("Sheet1")
    For Each cel In aws.Range("A1:D15")
    OriginalText = cel.value
    OriginalText = Replace(OriginalText, "A", "1")
    OriginalText = Replace(OriginalText, "B", "2")
    OriginalText = Replace(OriginalText, "C", "3")
    OriginalText = Replace(OriginalText, "D", "4")
    OriginalText = Replace(OriginalText, "E", "5")
    OriginalText = Replace(OriginalText, "F", "6")
    OriginalText = Replace(OriginalText, "G", "7")
    OriginalText = Replace(OriginalText, "H", "8")
    OriginalText = Replace(OriginalText, "I", "9")
    OriginalText = Replace(OriginalText, "{", "0")
    OriginalText = Replace(OriginalText, "}", "-0")
    dws.Range(cel.Address).Offset(, 5) = OriginalText
    Next cel

  • 如果您想在将每个数字放入新单元格时对其进行乘法运算,请更改此行:
            dws.Range(cel.Address).Offset(, 5) = OriginalText

    至:
            dws.Range(cel.Address).Offset(, 5) = OriginalText * .01

    关于excel - VBA excel中的替换函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32890151/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com