我有3张名为'sheet1','sheet2'和'mapping'表。
'Sheet1'包含实际数据(可以说原始数据和列号/标题名称可以不同)
'Sheet2'构成主工作表列(Sheet1数据头应该按照工作表2)
'mapping'包含sheet1和sheet2之间的映射
我正在寻找可以根据映射表更新sheet1列的代码。 如果映射表说“AB”=“C1”,则“sheet1”列应更新为“C1”
| AB| AF| AL| | C1| C2| C3| |sheet1 column_name | Sheet2 column_name|
|-----------| |-----------| | AB | C1 |
| 1 | f | y | | | | | | AL | C2 |
|---------- | |---------- | | AF | C3 |
| 2 | g | Q | | | | | -----------------------------------------
|---------- | |---------- |
| 6 | i | e | | | | |
------------- -------------
"Sheet 1" "Sheet 2" "Mapping"
我尝试过使用matchfunction但没有成功。还有其他想法吗?
提前致谢。
答案 0 :(得分:0)
使用以下代码..它可以解决问题或提出想法。
Sub renameworksheetcolumnmatach()
Dim test, findtext As Variant
Sheets("SHEET1").Activate
Dim i, j As Integer
For i = 1 To 36
findtext = Sheets("SHEET1").Cells(1, i).Value
On Error Resume Next
If Application.WorksheetFunction.Match(findtext, Sheets("MAPPING").Range("A1:A100"), 0) Then
Set rngx = Worksheets("mAPPING").Range("A1:A100").Find(findtext, LookAt:=xlWhole)
c = rngx.Address
newcolval = Sheets("Interface").Range(c).Offset(0, 1).Value
If newcolval = "" Then
Cells(1, i).Interior.ColorIndex = 35
GoTo P
End If
Sheets("SHEET1").Cells(1, i) = newcolval
End If
P:
Next i
End Sub