gpt4 book ai didi

excel - 有没有一种快速的方法可以从 VBA 的 Range 中获取列字母?

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

正如您在以下代码中所见,我创建此特定范围以进行复制的方式非常广泛。有没有更有效的方法?

    For counter = 1 To quantity

Set header_range(counter) = _
Application.InputBox("Select the HEADER of the " & counter & "º column you want to copy", Type:=8)

col_number = header_range(counter).Column
last_row = Cells(Rows.Count, col_number).End(xlUp).Row
col_letter = Split(Cells(1, col_number).Address(True, False), "$")(0)

Range(header_range(counter), Range(col_letter & last_row)).Copy

target_wb.Sheets("Sheet1").Cells(1, counter).PasteSpecial

Next counter

最佳答案

您不需要使用实际的字母。相反,使用带有 Cells 的列和行索引目的。 Cells输入是索引,即 Cells(Row Index, Column Index) .我还建议使用较短的变量名以提高可读性

  • r = 行索引
  • c = 列索引

  • 这是一个使用索引从 Row 1 复制范围的示例至 r (最后一行)在通过 InputBox 选择的变量列中
    Sub Example()

    Dim Input_C As Range
    Dim r As Long, c As Long

    Set Input_C = Application.InputBox("Select Target Header", Type:=8)

    'Convert to Index
    c = Input_C.Column
    r = Cells(Rows.Count, c).End(xlUp).Row

    'Build Dynamic Range
    Range(Cells(1, c), Cells(r, c)).Copy

    End Sub

    关于excel - 有没有一种快速的方法可以从 VBA 的 Range 中获取列字母?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66144840/

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