2017-09-03 133 views
1

我想将工作表复制到只值,而不是公式一个新的工作簿。我需要一列来保留公式。单元格的值复制数组范围VBA

它可能不是最好的方法,但我试图将公式复制到变体数组,然后复制值,然后将公式数组添加到新工作表。

我正在使用下面的代码,但得到一个错误。 “运行时错误:1004应用程序定义或对象定义的错误

Set wbNew = Workbooks.Open(NewName) 

Dim Colm As Variant 
Dim Frange As Range 

Colm = wbNew.Sheets(wsName).Range("F1:F100").Formula 

wbNew.Sheets(wsName).UsedRange.Value = wbNew.Sheets(wsName).UsedRange.Value 

Set Frange = wbNew.Sheets(wsName).Range("F1:F100") 

Set Frange = Frange.Resize(UBound(Colm), 1) 

Frange.Value = Colm 
+1

(一)你从来没有分配值'wsName'和'NewName'(但也许这只是因为发布了一些不是MCVE的东西?)(b)哪一行给出了错误?(c)一旦我赋予了'wsName'和'NewName'值,代码就为我工作,并给出了不同的错误如果我没有,那么你得到的那个 – YowE3K

+0

我同意@YowE3K一切都应该工作,只要'NewName'和'wsName'是正确的,这行不做任何事:'Set Frange = Frange.Resize(UBound Colm),1)'。'Frange'已经是'U绑定(Colm)'行1列。 – 2017-09-03 22:12:45

回答

1

这个工作对我来说:

Set wbNew = Workbooks.Open(NewName) 

Dim Colm As Variant 
Dim Frange As Range 

Set Frange = wbNew.Sheets(wsName).Range("F1:F100") 

Colm = Frange.Formula 

With wbNew.Sheets(wsName).UsedRange 
    .Value = .Value 
End With 

Frange.Value = Colm 
相关问题