簡體   English   中英

根據另一列中的單元格值命名工作表

[英]Name worksheets based on cell value in another column

我對VBA有點陌生,這是我的問題

我的工作表中有兩個簇狀體

test        Name
1               A
2               B

現在,我有了運行代碼,並為cloumn“測試”中的每個值創建了一個新工作表。

例如,

第一次運行時,將提取1,並且我的代碼將運行並創建一個新工作表,並將創建的工作表名稱設置為1(基於從測試列中提取的值)。 第二次,重復此過程,並創建新工作表,工作表名稱為2

現在這是我的要求。

我們是否可以根據“名稱”列而不是“測試”列來命名新創建的工作表

我的意思是,當獲取1並創建新工作表時,我想將其命名為“ A”而不是1,並且當循環第二次運行時,我希望將新工作表命名為“ B”而不是2

請幫忙

謝謝

UPDATE

樣例代碼

    Dim ran As Range
    Dim cel As Object

    Set ran = Worksheets("sheet1").Range("A2:A100")

    For Each cel In ran

        If cel.value <> Empty Then

            ' this is mycode. am skipping it
            '<my code> ActiveWorkbook.Worksheets.Add
            '    With ActiveSheet.QueryTables.Add(Connection:= etc </mycode>

            ' once my code runs, a new sheet is created which as of now refrences
            ' to "test" column as said earlier. i want this to refer to "name"
            ' column when the loop runs so that the sheets are named based on
            ' "name" colum rather than "test"
            activesheet.name = cel

        Else
            Exit For

        End If
    Next cel

您需要更改用於命名的單元格的范圍; 如果“名稱”在與“測試”相鄰的列上,則更改:

activesheet.name = cel

activesheet.name = CStr(cel.Offset(0,1).Value)

你應該沒事的

請注意,您可能已將ran范圍更改為范圍"B2:B100"但是我不確定您是否在代碼中不使用范圍"A2:A100"

更新

如果這是我的代碼,那么我也最好為cel聲明正確的類型:

Dim cel  As Excel.Range

但這對您的問題不是必需的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM