2016-08-25 80 views
2

我目前正在尝试写一个VB脚本的第一次,我努力与这种新的语言。 我需要将多个工作表复制到一个新的工作簿,并用计算出的值替换公式。VBA脚本转换公式到值,同时复制到另一个工作簿

我成功地在一个新的工作簿中复制2工作表,但我不明白如何使用我自己的子方法将公式转换为值。

这是我的代码至今:

Sub myMacro() 
    Dim wb As Workbook 
    Set wb = Workbooks.Add 
     ThisWorkbook.Sheets("SHEET_1").Copy Before:=wb.Sheets(1) 
     ThisWorkbook.Sheets("SHEET_2").Copy Before:=wb.Sheets(1) 
    wb.SaveAs "newWB.xlsx" 
End Sub 

所有我现在需要的是,在复制过程中,变换公式与价值观。 感谢

+0

只需将单元格的值设置为由公式计算的值即可。 “ThisWorkbook.Sheets(”SHEET_1“)。Range(”A1:Z1000“)。Value = ThisWorkbook.Sheets(”SHEET_1“)。Range(”A1:Z1000“)。Value'-显然改变'Range(”A1: Z1000“)'。 – Jordan

+0

虽然有效,但我不想将我的公式更改为我的源工作簿,但仅限于我的目的地。 – Delfalso

回答

1

从我的意见继,试试这个:

Sub myMacro() 
Dim wb As Workbook 
Set wb = Workbooks.Add 
    ThisWorkbook.Sheets("SHEET_1").Copy Before:=wb.Sheets(1) 
    ThisWorkbook.Sheets("SHEET_2").Copy Before:=wb.Sheets(1) 
    wb.Sheets("SHEET_1").Range("A1:Z1000").Value = wb.Sheets("SHEET_1").Range("A1:Z1000").Value 
    wb.Sheets("SHEET_2").Range("A1:Z1000").Value = wb.Sheets("SHEET_2").Range("A1:Z1000").Value 
wb.SaveAs "newWB.xlsx" 
End Sub 

上面的代码更改的新工作表公式值的范围在A1:Z1000(新目标工作簿)。

+0

虽然有效,但我不想将我的公式更改为源工作簿,但仅限于我的目标。 – Delfalso

+0

原始评论通过使用'Thisworkbook'改变了源代码,然而答案中的代码将改变目标表单,因为它们引用了新工作簿中的'wb' – Jordan

+1

我的不好,没有看到改变。完美的作品谢谢你! :) – Delfalso

相关问题