使用值列表创建工作表并更新表中的值?

时间:2017-09-01 11:10:41

标签: excel vba excel-vba

我在开发用于创建多个工作表的代码时遇到问题,而工作表名称是从其他工作表的列表中获取的,然后在创建的工作表中,需要从表中更新一些字段。我的意思是首先创建工作表,从主工作表单元格A1(例如)复制的值,以及下一个创建的工作表,从主工作表单元格A2复制的值,直到结束。

我开发了代码,直到它成功复制它,但我不知道如何从表中替换单元格值。

我不知道它有多么具有挑战性,但任何帮助都会受到高度赞赏。

由于 萨拉

我当前的代码

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

1 个答案:

答案 0 :(得分:0)

首先,这个

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

可以在一行中完成:

Set MyRange = Range(Cells(6, 3), Cells(6, 3).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)是不必要的,因为我们不会激活或选择任何其他工作表。