gpt4 book ai didi

excel - 按相邻列名选择单元格

转载 作者:行者123 更新时间:2023-12-04 22:13:45 27 4
gpt4 key购买 nike

我对 VBA 很陌生,正在尝试创建一个宏,该宏选择特定命名列旁边的单元格,将其命名为“UniqueID”,将连接公式应用于整个列,然后选择下一列,名称它是“VerifyID”,并将 VLOOKUP 应用于整个列。我遇到的问题是进行特定的单元格选择工作。这是我所拥有的:

Application.CutCopyMode = False
Sheets("PowerBI Data Dump").Select
Selection.AutoFilter
Dim i As Long

Dim LastSamplePrepColumn As Range

Dim rngHeaders As Range

Set rngHeaders = Range("1:1")

Set LastSamplePrepColumn = rngHeaders.Find("UniqueID")
i = LastSamplePrepColumn.Column
j = LastSamplePrepColumn.Column + 1

ActiveSheet.Cells(2, i).Select
ActiveCell.FormulaR1C1 = "=CONCATENATE(RC[-2],RC[-1])"
Selection.AutoFill Destination:=Range("RC2:RC157")
ActiveSheet.Cells(1, j).Select
ActiveCell.FormulaR1C1 = "VerifyID"
ActiveSheet.Cells(2, j).Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],UniqueID!C[-26],1,FALSE)"
调试时,它在最后一行出错。但是,我的主要问题是 Range().Select 按字母而不是按列名选择列。我得到了各种格式的数据转储,所以我需要它能够通过它旁边的名称来选择一列。
提前感谢您的任何建议。
编辑:我更改了代码以反射(reflect)我现在的位置。我仍然坚持如何使公式适用于整个列而不逐个字母选择列。

最佳答案

所以你想找到'UniqueID'列,然后在右边的两列中添加公式,然后复制下来?
这段代码可以做到这一点,但我认为您可能需要重新考虑 VLOOKUP公式。
首先,您可以将其替换为 MATCH如果列 UniqueID将在您可能需要考虑将相对列引用(即-26)更改为绝对引用。


Dim wsData As Worksheet
Dim LastSamplePrepColumn As Range
Dim rngHeaders As Range
Dim colID As Long

Application.CutCopyMode = False

Set wsData = Sheets("PowerBI Data Dump")

Set rngHeaders = ws.Range("1:1")

colID = Application.Match("UniqueID", rngHeaders, 0)

If Not IsError(colID) Then
With wsData
.Range(.Cells(2, colID + 1), .Cells(.Rows.Count, colID).End(xlUp).Offset(, 1)) _
.FormulaR1C1 = "=CONCATENATE(RC[-2],RC[-1])"
.Range(.Cells(2, colID + 2), .Cells(.Rows.Count, colID).End(xlUp).Offset(, 2)) _
.FormulaR1C1 = "=VLOOKUP(RC[-1],UniqueID!C[-26],1,FALSE)"
End With
End If

关于excel - 按相邻列名选择单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71300259/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com