【问题标题】:Adding column vlookup and color row添加列 vlookup 和颜色行
【发布时间】:2018-06-01 16:40:13
【问题描述】:

我有 2 张工作簿 Sheet1(No,Host,date,String,ID,TKT) 数据(ID 和名称)

我想创建一个宏,它可以在数据表中添加带有名称和 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 中添加带有标题名称的列的宏 表 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(ID 和名称)并在 sheet1 中新添加的列(名称)上返回名称

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

你能帮忙吗

谢谢 人力资源

【问题讨论】:

  • 您是否在问如何在 VBA 中在一个范围内添加 Vlookup?此外,第一个宏可以完全替换为简单的条件格式,除非我遗漏了什么?还有,为什么Case ElseSelect Case代码中间?
  • "add column with name and vlookup iD " 是什么意思?也许如果你在截图中包含你所拥有的,以及你想要的输出?
  • 询问如何在 VBA 中在一个范围内添加 Vlookup? - 是的,先生我没有使用条件格式的原因是因为我这里有太多的 id,我只添加了几个。其他情况 - 类型 :-) @BruceWayne
  • 我已经编写了添加列 (2) 和更改颜色 (1) 的代码,现在我正在寻找如何通过 vba (3) 进行 vlookup 并将所有 3 个代码合并为 1 个代码 @PGCodeRider
  • @HarshaReddy 为什么不将点击命令宏复制到更改颜色宏中?再次截图或更清晰的视野会有所帮助。

标签: vba excel


【解决方案1】:

我很可能不理解您的问题,但如果您只想在 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

希望能帮助你朝着正确的方向前进。

【讨论】:

  • ' 在 VLookup 中添加:rngUsernameHeader.Offset(1, 1).Formula = "=VLOOKUP(E2,Data!A:B,2,FALSE)" 你能告诉我如何循环 abv vlookup @John Bustos
  • 我需要更多信息...您能否解释更多E2 以及您在 VLookup 中看到的内容?那么,第 3 行会是E3,还是会保持E2 等?另外,你知道你需要多少行吗/你怎么知道要往下走多少行?
猜你喜欢
  • 2015-04-05
  • 1970-01-01
  • 2012-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多