首页 > 解决方案 > 添加列 vlookup 和颜色行

问题描述

我有 2 张工作簿 Sheet1(No,Host,date,String,ID,TKT) Data ( ID & Name )

我想创建一个宏,它可以在数据表中添加带有名称和 vlookup iD 的列,并返回名称并使用 id 列更改颜色

我有的

我有 2 个单独的宏 1- 使用 id 列更改颜色的宏

工作表代码

Sub ChangeColor()
lRow = Range("E" & Rows.Count).End(xlUp).Row
Set MR = Range("E2:E" & lRow)
For Each cell In MR
Select Case cell.Value
Case "x12340"
cell_colour = 2
Case "x12341"
cell_colour = 6
cell.EntireRow.Font.ColorIndex = 4
Case "x12342"
cell_colour=6 
cell.EntireRow.Font.ColorIndex = 2
Case "x12343"
cell_colour=7 
cell.EntireRow.Font.ColorIndex = 2
Case "x12344"
cell_colour=8 
cell.EntireRow.Font.ColorIndex = 2
Case "x12345"
cell_colour=9 
cell.EntireRow.Font.ColorIndex = 2
Case Else
cell_colour = 1
cell.EntireRow.Font.ColorIndex = 4
End Select
cell.EntireRow.Interior.ColorIndex = cell_colour
Next
End Sub

2- 在 Sheet1 中添加带有标题名称 Sheet 1 的列的宏

Private Sub CommandButton1_Click()
Dim rngUsernameHeader As Range
Dim rngHeaders As Range

Set rngHeaders = Range("1:1") 'Looks in entire first row.
Set rngUsernameHeader = rngHeaders.Find(what:="ID", After:=Cells(1, 1))

rngUsernameHeader.Offset(0, 1).EntireColumn.Insert
rngUsernameHeader.Offset(0, 1).Value = "Name"

End Sub

我在找什么

可以做的单个宏

1 和 2 以及从数据表中的 sheet1(ID 和名称)中的 vlookup iD 并在 sheet1 中新添加的列(名称)上返回名称

=VLOOKUP(E2,Data!A:B,2,FALSE)

你能帮忙吗?

谢谢人力资源

标签: vbaexcel

解决方案


我很可能不理解您的问题,但如果您只想在rngUsernameHeader.Offset(0, 1)列中添加 VLookup 函数并运行 change-color 宏,您可以将您Sub的外观更改如下:

Private Sub CommandButton1_Click()
Dim rngUsernameHeader As Range
Dim rngHeaders As Range

    Set rngHeaders = Range("1:1") 'Looks in entire first row.
    Set rngUsernameHeader = rngHeaders.Find(what:="ID", After:=Cells(1, 1))

    rngUsernameHeader.Offset(0, 1).EntireColumn.Insert
    rngUsernameHeader.Offset(0, 1).Value = "Name"

    ' Add in the VLookup:
    rngUsernameHeader.Offset(1, 1).Formula = "=VLOOKUP(E2,Data!A:B,2,FALSE)"

    ' Run the ChangeColor Macro:
    ChangeColor

End Sub

希望这有助于您朝着正确的方向前进。


推荐阅读