我有一个 XL 文件,其中包含一些要处理的数据。我想我需要使用 VB 脚本来执行此操作 - 但也许有一种更简单的公式方法。同样,有人可以指出实现以下目标的两种方法吗?
我在工作表 1 中有一列数值 (ID)。我想使用每个 ID 作为索引来查找工作表 2 中的列表。工作表 2 有两列第一列是索引,第二列是文本字符串,例如
1 苹果
2 橙色
3梨
我想要的是用表 2 中查找的文本字符串替换表 1 中的 ID 列!
仅此而已...请帮助!
那里的情况并不严峻。这里有一些解决方案...
使用 VBA:
我知道你说你对 VB 有点陌生,所以我试着解释每一行。此外,代码是免费的,所以如果我在某处留下错误,请原谅我。
Sub replaceData()
dim i as integer, j as integer 'These are just some variables we'll use later.
dim sheetOne as worksheet, sheetTwo as worksheet, myWb as workbook
dim myData as string, myId as string
set myWB = excel.activeworkbook 'These three lines set your workbook/sheet variables.
set sheetOne = myWB.worksheets("Old Data")
set sheetTwo = myWB.worksheets("New Data")
for i = 1 to sheetTwo.usedrange.rows.count 'This loops through the rows on your second sheet.
myId = sheetTwo.cells(i,1).value 'This assigns the value for your id and the data on your second sheet.
myData = sheetTwo.cells(i,2).value
for j = 1 to sheetOne.usedrange.rows.count 'This loops through the rows on your first sheet.
if sheetOne.cells(j,1).value = myId then 'This checks each row for a matching id value.
sheetOne.cells(j,1).value = myData 'This replaces that id with the data we got from the second sheet.
end if
next j
next i
end sub
使用 Excel 公式:
将以下公式放在第一个工作表的单元格 C1 中(带有您要替换的 ID 的工作表)。**请注意,您必须将“InsertSheetTwoNameHere”部分替换为第二张工作表的名称(但不要删除那些单引号)。另请注意,您需要将“1000”替换为第二张表中最后使用的行的编号。
=vlookup(A1,'InsertSheetTwoNameHere'!$A$1:$B$1000,2,FALSE)
接下来只需拖动单元格上的句柄,使其复制自身(不管它叫什么)一直到范围的末尾。
接下来,复制这些单元格,然后使用“ 仅值”设置将它们粘贴到 ID 上。
希望这会有所帮助,祝你好运。