[英]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.