2017-09-01 124 views
0

我在開發創建多個工作表的代碼時遇到了麻煩,並且工作表名稱是從其他工作表中的列表中獲取的,然後在創建的工作表中,需要從表中更新一些字段。我的意思是第一個創建的工作表,從主工作表單元格A1複製的值(例如),以及下一個創建的工作表,從主工作表單元格A2複製的值並一直到最後。使用表中的值列表和更新值創建表單?

我開發的代碼,直到它成功地複製它,但我不知道如何替換表中的單元格值。

我不知道它是多麼具有挑戰性,但任何幫助將不勝感激。

Set MyRange = Range(Cells(6, 3), Cells(6, 3).End(xlToRight)) 

還要考慮MO:

感謝 薩拉特

我當前的代碼

Sub create_sheets() 

Dim MyCell As Range, MyRange As Range 

Set MyRange = Sheets("input data").Range("C6") 
Set MyRange = Range(MyRange, MyRange.End(xlToRight)) 

For Each MyCell In MyRange 

Sheets("200L_50°C").Copy After:=Sheets(Sheets.Count) 'creates a new worksheet 
Sheets(Sheets.Count).Name = MyCell.Value ' renames the new worksheet 

Next MyCell 

End Sub 

回答

0

首先,這

Set MyRange = Sheets("input data").Range("C6") 
Set MyRange = Range(MyRange, MyRange.End(xlToRight)) 

可以在同一行中完成再強大的版本:

Set MyRange = Range(Cells(6, 3), Cells(6, Columns.Count).End(xlToLeft)) 

已經落戶這一點,創建表,我寧願用.Add方法:

Dim i As Long: i = 1 
For Each MyCell in MyRange 
    Sheets.Add After:=Sheets(Sheets.Count) 
    Sheets(Sheets.Count).Name = MyCell.Value 
    'copy the value from main Worksheet - from A1, A2, etc. 
    'to A1 in new worksheet - it remains first sheet I assume 
    Sheets(Sheets.Count).Cells(1, 1).Value = Sheets(1).Cells(i, 1).Value 
    i = i + 1 
Next MyCell 

此外,使用Sheet(1)是不必要的,因爲我們不需要激活或選擇任何其他表。

+0

嗨Michal, 使用您的代碼我開發進一步達到我的要求。感謝我用它開發自己的代碼。 –