我需要将相同的工作表X次(x = sheet2行A)复制到新工作簿中 .
对于我需要的每个副本:
1.更改下拉列表以显示下一个值
2.刷新(工作簿连接到数据库,该数据库根据下拉列表的值提取不同的信息,不会自动刷新)
3.仅复制值(无公式)
-
将工作表重命名为下拉列表的值 .
-
将所有复制的工作表保存到1个工作簿中
按下按钮时调用的我的代码(下面)当前基于sheet2 rowA(按预期)将片材保存X次 .
缺少步骤1,2,4和5
我现在的代码(按下按钮点击)
Dim x As Integer '~~>Loop counter
Dim WS As Worksheet
Dim LastCellA As Range, LastCellB As Range
Dim LastCellRowNumber As Long
Set WS = Worksheets("Sheet2") '~~>Sheet with names
With WS
Set LastCellA = .Cells(.Rows.Count, "A").End(xlUp) '~~>Column with names.
'~~>This needs to be changed to find the range as data may not start at A1
x = Application.WorksheetFunction.Max(LastCellA.Row)
End With
For numtimes = 1 To x
ActiveWorkbook.Sheets("Sheet1").Copy _
After:=ActiveWorkbook.Sheets(Worksheets.Count)
'~~>Copy values only
ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value
Next
2 回答
仍然......我不确定你基于下拉列表的不同值 . 这可能是用于编码数据的不同宏 . 然后你需要调用该宏而不是
.RefreshAll
.EDIT :
如果您在使用Sheet2列A列表时遇到问题(因为它包含公式的空单元格),您可以尝试不同的方法:
根据您提供的代码,我相信这正是您所寻找的 .
它将遍历您的列表,将sheet1复制到新工作簿并命名工作表 .
通过下拉列表循环,我不确定你想要什么 .