【发布时间】:2021-08-14 05:43:37
【问题描述】:
我有两张桌子。
Droplist Table 有 2 列:
-
[HeaderA] 包含查找值
-
[HeaderA_D] 包含替换值
| HeaderA | HeaderA_D |
|---|---|
| 1 | 1/50 |
| 2 | 1/100 |
| 3 | 1/200 |
| 4 | 1/500 |
表 1 表
- [HeaderB] 是我尝试从 Droplist[HeaderA] 中查找匹配值并替换为 Droplist[HeaderA_D] 的列
| HeaderB |
|---|
| 1 |
| 2 |
| 3 |
| 4 |
当前结果
| HeaderB |
|---|
| 18624 |
| 1/100 |
| 1/200 |
| 1/500 |
预期结果
| HeaderB |
|---|
| 1/50 |
| 1/100 |
| 1/200 |
| 1/500 |
问题:
我无法找到“1”并将其替换为“1/50”。它不断将其替换为 18624,即 1950 年 1 月 1 日,数字格式为“日期”
我试过了:
我的代码在下面,我确保两者都在 .Numberformat = "Text"
'''
Sub Find_Replace()
Dim b, c As Variant
Dim j As Integer
Set b = Range("Droplist[HeaderA]")
Set c = Range("Droplist[HeaderA_D]")
For j = 1 To Application.WorksheetFunction.CountIf(Range("Droplist[HeaderA]"), "<>")
Range("Table1[HeaderB]").Select
Range("Table1[HeaderB]").NumberFormat = "@"
Application.ReplaceFormat.NumberFormat = "@"
Selection.Replace What:=b(j), Replacement:=c(j), LookAt:=xlWhole, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=True
Next j
End Sub
'''
【问题讨论】: