gpt4 book ai didi

Excel VBA - 按标题搜索列并粘贴到新工作表中

转载 作者:行者123 更新时间:2023-12-04 21:51:29 25 4
gpt4 key购买 nike

我是 VBA 新手...尝试按名称搜索特定列并将它们粘贴到新工作表中。

到目前为止,我所拥有的内容似乎很笨重,并且没有复制或粘贴所需的列,而是我目前在剪贴板上拥有的内容!

理想情况下,我将能够搜索 3 个不同的列并将它们粘贴到新工作表上。

任何帮助将不胜感激

Dim CheckText As String
Dim CheckRow As Long
Dim FindText As Range
Dim CopyColumn As String
CheckText = “Bsp” 'Bsp is an example header
CheckRow = 1 'Row with desired header
Dim oldsheet As Worksheet

Set oldsheet = ActiveSheet
Sheets.Add(After:=Sheets(Sheets.Count)).Name = "Pivot"
oldsheet.Activate
ActiveSheet.Select
'trying here to create a new sheet, name it and go back to the first sheet
Set FindText = Rows(CheckRow).Find(CheckText)
If FindText Is Nothing Then
MsgBox "Bsp not found"
End If

CopyColumn = Cells(CheckRow, FindText.Column).Column
Columns(CopyColumn).Select.Copy

Sheets("Pivot").Select

ActiveSheet.Paste

最佳答案

这只是一个通用示例,您可以根据需要进行调整。代码将查找名为 Some String 的列标题. 中频找到这一列,我们接下来确定最后一行,复制该列(向下到最后一行),然后将该列粘贴到单元格A1中在 Pivot床单。

  • 使用范围变量 Found存储您的列标题属性(即位置)
  • 检查是否确实找到了标题! If Not Found is Nothing (翻译:找到)
  • 使用Found.Column引用适合 Cells 的列索引属性很好,因为语法是 Cells(Row Index, Column Index)

  • Option Explicit

    Sub Test()

    Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sheet1") '<== Sheet that has raw data
    Dim LRow As Long, Found As Range

    Set Found = ws.Range("A1:Z1").Find("Some String") '<== Header name to search for

    If Not Found Is Nothing Then
    LRow = ws.Cells(ws.Rows.Count, Found.Column).End(xlUp).Row
    ws.Range(ws.Cells(1, Found.Column), ws.Cells(LRow, Found.Column)).Copy
    Sheets("Pivot").Range("A1").PasteSpecial xlPasteValues '<== Sheet to paste data
    End If

    End Sub

    您将要修改 Range.Find 上的一些选项。方法。详情可查看 here

    关于Excel VBA - 按标题搜索列并粘贴到新工作表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53136496/

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