首页 > 解决方案 > 将通过输入框选择的列设置为变量

问题描述

尝试开发代码以在另一个工作簿 (OpenBook_CY) 中查找值并将其存储在 Comp_Book 中。代码运行良好,但是我需要将一些固定列更改为变量

Dim Conp_Book as Workbook, OpenBook_CY as Workbook   
Dim M_Sheet As Worksheet, CY_Sheet As Worksheet
Dim M_LR As Long, CY_LR As Long, r As Long, SelectE_Column As Long, E_Column As range
Dim CY_Rng As range,

Set M_Sheet = Comp_Book.Worksheets("Sheet1")
Set CY_Sheet = OpenBook_CY.Worksheets("Trial-New")

M_LR = M_Sheet.range("B" & Rows.Count).End(xlUp).Row
CY_LR = CY_Sheet.range("J" & Rows.Count).End(xlUp).Row
SelectE_Column = Application.InputBox(Prompt:="Select your entity ", Title:="Select Entity", Type:=8)
Set E_Column = SelectE_Column.EntireColumn
Set CY_Rng = CY_Sheet.range("B2:J" & CY_LR)

For r = 6 To M_LR
On Error Resume Next
M_Sheet.range("D" & r).Value = Application.WorksheetFunction.VLookup(M_Sheet.range("B" & r).Value, 
CY_Rng, 9, 0)
Next r

我想将“J”(如CY_Rng中提到的)替换为用户通过输入框选择的列(我暂时命名为E_Column)。现在 J 是一个固定列,但我希望它是用户选择的列(在 CY_Rng 中)

Set CY_Rng = CY_Sheet.range("B2:J" & CY_LR)

其次,在 vlookup 公式中,“9”代表第 9 列,即上面提到的“J”同样,我希望将数字“9”替换为上面用户选择的列号

M_Sheet.range("D" & r).Value = Application.WorksheetFunction.VLookup(M_Sheet.range("B" & r).Value, 
CY_Rng, 9, 0)

标签: excelvba

解决方案


您是否尝试将列“J”声明为变量?


推荐阅读