我对VBA有点新意,这是我的问题
我的sheet1中有两个cloumns
test Name
1 A
2 B
现在我有代码运行并为cloumn" test"中的每个值创建一个新工作表。
例如,
第一次运行时,将获取1并运行我的代码并创建新工作表,并将创建的工作表名称设置为1(基于从测试列获取的值)。第二次,该过程重复创建新工作表并且工作表名称为2
现在这是我的精神。
我们是否可以根据" Name"来命名新创建的工作表。列而不是" test"柱
我的意思是当获取1并创建新工作表时,我想将其命名为" A"而不是1,当循环第二次运行时,我想将新表格命名为" B"而不是2
请帮忙
由于
更新
示例代码
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
答案 0 :(得分:1)
您需要更改用于命名的单元格的范围;如果&#34;名称&#34;在&#34; test&#34;旁边的列上,然后更改:
activesheet.name = cel
到
activesheet.name = CStr(cel.Offset(0,1).Value)
你应该没事。
请注意,您可能已将ran
更改为范围"B2:B100"
,但我不确定您是否未在代码中使用范围"A2:A100"
值...
<强>更新强>
如果是我的代码,我觉得最好为cel
声明正确的类型:
Dim cel As Excel.Range
但这对你的问题不是必不可少的。