![]() |
Not able to copy a VBA array with formulas into an Excel range
Hi,
I am trying to transfer the contents of an array into a range of Excel (red line in the code below). Though I am able to do that when the array has values, however, it is giving me an error when the array has formulas. How can I get this to work? VBA Code: ... Dim Vma As Variant ... TotalRows = .Range("Spread").Count Vma = Application.Transpose(.Range("Spread")) For i = TotalRows To 1 Step -1 Vma(i) = "=RC[-2]- RC[-1])" Next .Range("Spread") = Application.WorksheetFunction.Transpose(Vma) ... Thanks, MG. -- Message posted via OfficeKB.com http://www.officekb.com/Uwe/Forums.a...mming/200903/1 |
Not able to copy a VBA array with formulas into an Excel range
Your formula isn't valid (the ()'s don't match):
Vma(i) = "=RC[-2]- RC[-1])" should be: Vma(i) = "=(RC[-2]- RC[-1]" or Vma(i) = "=(RC[-2]- RC[-1])" I'm not sure if this is a simplified version, but how about: with worksheets("somesheetnamehere") .range("Spread").formular1c1 = "=RC[-2]- RC[-1]" end with ps. I'd be explicit with the .formular1c1 in your code, too. "musicgold via OfficeKB.com" wrote: Hi, I am trying to transfer the contents of an array into a range of Excel (red line in the code below). Though I am able to do that when the array has values, however, it is giving me an error when the array has formulas. How can I get this to work? VBA Code: ... Dim Vma As Variant ... TotalRows = .Range("Spread").Count Vma = Application.Transpose(.Range("Spread")) For i = TotalRows To 1 Step -1 Vma(i) = "=RC[-2]- RC[-1])" Next .Range("Spread") = Application.WorksheetFunction.Transpose(Vma) ... Thanks, MG. -- Message posted via OfficeKB.com http://www.officekb.com/Uwe/Forums.a...mming/200903/1 -- Dave Peterson |
Not able to copy a VBA array with formulas into an Excel range
Dave,
Thanks. You are right; the formula was wrong. How silly of me! MG Dave Peterson wrote: Your formula isn't valid (the ()'s don't match): Vma(i) = "=RC[-2]- RC[-1])" should be: Vma(i) = "=(RC[-2]- RC[-1]" or Vma(i) = "=(RC[-2]- RC[-1])" I'm not sure if this is a simplified version, but how about: with worksheets("somesheetnamehere") .range("Spread").formular1c1 = "=RC[-2]- RC[-1]" end with ps. I'd be explicit with the .formular1c1 in your code, too. Hi, [quoted text clipped - 27 lines] Message posted via OfficeKB.com http://www.officekb.com/Uwe/Forums.a...mming/200903/1 -- Message posted via OfficeKB.com http://www.officekb.com/Uwe/Forums.a...mming/200903/1 |
All times are GMT +1. The time now is 09:43 AM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com