vba - 使用 .Replace 撤消 ID
问题描述
第一次在这里发帖,如果我的格式不正确,请见谅。这是我的问题(请参阅下面我尝试解决的问题):我有一个工作列表,其中分配有工作人员的 ID。前任。在一张“IDsheet”中
Job Id
M1 S1 S4
M2 S15
M3 S2
M4 S6 etc
在另一张“工人”中,我有
Name ID
Andy S1
Dave S2
Hilda S3
Kerri S4 etc
我正在尝试(失败)为 excel 编写一点 VBA,以便我可以用正确的“名称”替换所有 S1、S2 等。
我环顾四周,我以为我找到了必要的代码,但我错误地实现了它,而且我缺乏 VBA 知识可能让我错误地调用它。
我的子程序是:
**
Sub StaffReplaceAll(code As String, staffid As String)
Dim fnd As String
Dim rplc As String
fnd = code
rplc = staffid
Worksheets("IDsheet").Cells.Replace _
what:=fnd, Replacement:=rplc, _
LookAt:=xlPart, SearchOrder:=xlByColumns, MatchCase:=True, _
SearchFormat:=False, ReplaceFormat:=False
End Sub
**
我的调用函数是:
**
Function StaffSub(inval As String, outval As String) As Integer
Call StaffReplaceAll(inval, outval)
End Function
**
在我称之为“StaffSub”的地方,我得到了#VALUE!错误,并且 IDsheet 未更改。
提前感谢您的帮助。顺便说一句:我也看过使用 Vlookup,但我不确定它是否真的适合我在这里所做的,也看到了 这个页面,但这让我很困惑!
解决方案
在这里,我假设在IDsheet上,每个Id
都在自己的单元格中,并且这个Id
s 块从B2到最多Z100。编码:
Sub david()
Dim i As Long, N As Long, r As Range, v1 As String, v2 As String
With Sheets("Workers")
N = .Cells(Rows.Count, "A").End(xlUp).Row
For i = 2 To N
v1 = .Cells(i, "A")
v2 = .Cells(i, "B")
For Each r In Sheets("IDsheet").Range("B2:Z100")
If r.Value = v2 Then r.Value = v1
Next r
Next i
End With
End Sub
像这样的工人:
IDsheet转换为:
我没有使用.Replace ,因为像S15这样的字符串将同时匹配S1和S15。Id
出于类似的原因,我将单个单元格用于s。
编辑#1:
宏非常易于安装和使用:
- ALT-F11 调出 VBE 窗口
- ALT-I ALT-M 打开一个新模块
- 粘贴这些东西并关闭 VBE 窗口
如果您保存工作簿,宏将与它一起保存。如果您使用的是 2003 年以后的 Excel 版本,则必须将文件另存为 .xlsm 而不是 .xlsx
要删除宏:
- 如上所述调出 VBE 窗口
- 清除代码
- 关闭 VBE 窗口
要使用 Excel 中的宏:
- ALT-F8
- 选择宏
- 轻触运行
要了解有关宏的更多信息,请参阅:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
和
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
必须启用宏才能使其正常工作!
推荐阅读
- json - 将 jsonl 文件编码为 utf-8 在 Python 2.7 中失败
- css - Bulma:将模态框向右对齐
- css - 我可以为 React Native 应用程序使用 CSS/样式开发工具吗?
- powershell - Invoke-SqlCmd 到 -OutputAs Datatables - 然后在写回 SQL db 之前编辑数据表
- python - 在python中存储稀疏矩阵的LU分解
- php - 将图像添加到 Browsershot html 功能?
- javascript - 无序列表中文本的对齐方式
- reactjs - React Web 应用程序不维护 CSS 样式
- python - 在发布 GitHub 事件上构建 python 包轮
- javascript - PWA:如何在 manifest.json 中拥有动态“start_url”