# Convert Array Formula To Macro

Oct 31, 2006

The attached has a mega array formula that really slows down the recalc on this spreadsheet. I would like to use a macro to write the value of the formula to the worksheet "Database" column J.

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Cells.Count > 1 Or IsEmpty(Target) Then Exit Sub

If Not Intersect(Target, Range(Range("rReason").Offset(1, 0), Range("rReason"). _
Offset(UsedRange.Rows.Count + 1, 0))) Is Nothing Then
Target.Offset(0, 1) = Application.VLookup(Target, ValList.Range("ReasonLkUp"), 2, False)
'This formula below needs a VBA equivalent
' Target.Offset(0, 4).FormulaArray = "=IF(MIN(IF(R7C3:R35000C3=RC[-7],IF(R7C8:R35000C8>0,R7C8:R35000C8)))=RC[-2],MIN(IF(R7C3:R35000C3=RC[-7],IF(R7C8:R35000C8>0,R7C8:R35000C8))),0)"
End If

If Not Intersect(Target, Range(Range("rSurname").Offset(1, 0), Range("rSurname"). _
Offset(UsedRange.Rows.Count + 1, 0))) Is Nothing Then
Target.Offset(0, 1) = ActiveCell.Offset(0, -2) & " " & ActiveCell.Offset(0, -1)
End If
End Sub

## Convert Boolean Array To Integer Array?

Jun 21, 2014

wondering is there a VBA equivalent of --() in excel that turns trues and falses to 1's and 0's?

## Convert CSE Formula To A Macro

Apr 20, 2009

I am using the following Control Shift Enter (CSE) formula to find a value.

## Convert Formula Into Macro

Mar 2, 2008

convert the formula into macro

I hv formula as following :-

=Left(B2, Find(" ", B2, 1) - 1)
I likt to convert into macro,

ActiveCell.FormulaR1C1=_ "=Left(B2, Find(" ", B2, 1) - 1)"
But it cannot work

## Convert Sumproduct Formula To Macro

Oct 31, 2006

The attached has a sumproduct formula that is slow down the calculation of my workbook. (I know there is also an array formula-that's another thread). I'd like to use a macro to fire on the worksheet change so I don't have the heavy recalc burden. The formula is in worksheet "Database" in column H. So far:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Or IsEmpty(Target) Then Exit Sub
If Not Intersect(Target, Range(Range("rReason").Offset(1, 0), Range("rReason"). _
Offset(UsedRange.Rows.Count + 1, 0))) Is Nothing Then
Target.Offset(0, 1) = Application.VLookup(Target, ValList.Range("ReasonLkUp"), 2, False)
'This formula below needs a VBA equivalent
' Target.Offset(0, 2).FormulaR1C1 = "=IF(RC[-1]>0,SUMPRODUCT(-(R7C7:R35000C7<0)*0.5,--(R7C3:R35000C3=RC[-5]))+SUMPRODUCT(--(R7C7:RC7>0),--(R7C3:RC3=RC[-5]),R7C7:RC7),0)"
End If
If Not Intersect(Target, Range(Range("rSurname").Offset(1, 0), Range("rSurname"). _
Offset(UsedRange.Rows.Count + 1, 0))) Is Nothing Then
Target.Offset(0, 1) = ActiveCell.Offset(0, -2) & " " & ActiveCell.Offset(0, -1)
End If
End Sub

## Convert IF OR COUNTIF Formula To Macro

Nov 16, 2006

Can anyone create a vba macro with the condition mentioned below

=If(Or(( COUNTIF(F2,"*Error*")>0),(LEN(F2)<4), (COUNTIF(F2,"*html*")>0)),"Fail","Pass")

I tried to do but of no use.

## Convert Formula To Macro Code

Nov 24, 2006

I have

1) A worksheet ( named PC OD) with one 80X80 matrix (matrix1)

2) another worksheet (named worksheet2) where I have 2 80X80 matrices (matrix 2 and matrix 3) and the below mentioned formulae

Matrix 2 grabs data off Matrix 1 (cell 'PC OD'!B769 belongs to matrix 1, in sheet PC OD) to round off the values in each of the 80X80 cells : ...

## Can A Macro Write A Formula As An Array Formula

Jun 7, 2006

I'm trying to have a macro write down an array formula, but when I hit ctrl+shift+enter, the recorder says it can't record. If I write in the macro ...FormulaR1C1 = {=...} then I get the formula as a text. Is there a way to tell the macro that a formula should be entered as an array formula?

## Macro To Edit A Cell & Convert Formula To Text

Oct 13, 2006

Have a macro that copies a formula from each of 100 workbooks to a new workbook. I want to display these formulas as text and want a macro or someway to display these cells as text. I have tried to record a macro that presses the F2 key, the home key and the apostrophe. This works for the one cell but provides the following macro that does not work for anyother cell.

ActiveCell.FormulaR1C1 = _
"'=VLOOKUP(\$A\$30,'G:Variance Reports FY07[Salary Dist Var Repts_Cur Mth.xls]end of July'!\$E\$76:\$G\$200,3)"
Range("B3").Select

## Convert Formula To Macro Code (combining Data From Two Cells)

Jul 28, 2009

I received assistance from NBVC for combining data from two cells. Post http://www.excelforum.com/showthread.php?p=2135144. I need to convert the formula into macro code. I thought I would be able to convert it on my own, but running into some troubles with run time errors. Here is the Excel formula, which is working fine.

## Using Data From Input Box In Array Formula In Macro

Nov 10, 2011

I often have to research long sheets of data, which requires filling data in on my research sheet from several different sources. The research sheet has a file # in A and a vendor # in C. The data sources have the file #s & vendor #s in varying columns, but I use a pivot table to end up with file # in A, vendor # in B and the needed data in C.

The length of the research sheet varies from month to month - often 800-900 rows, so you can imagine how tedious it is to find the correct file #/vendor # combination to plug the data in. (Many of the rows on the research sheet will not have a row on the data source sheet.)

I managed to get an array formula in one of the columns on the research sheet that actually DOES work:

Code:

{=INDEX('Acct Activity'!C\$1:C\$7,MATCH(A7&C7,'Acct Activity'!A\$1:A\$7&'Acct Activity'!B\$1:B\$7,0))}

But the problem is that it returns #N/A in any row that doesn't have any data. This messes up the sum formula in the farthest right column. So, I tried to incorporate an ISERROR in with the formula, but couldn't get it to work; it left all the cells blank.

In the meantime, I got to thinking that, since there are up to 3 columns requiring data on the research sheet & each column's data comes from a different source, wouldn't it be great to have a macro where I could use a couple of Input Boxes: 1 that would let me click on the column where the data NEEDS to go & 1 that would let me tell it (either by typing the worksheet name or by clicking on the worksheet " PREFERRED " where the data come from)!

So, I spent the entire day yesterday trying to make any of that work & can NOT figure it out! I got the macro to pop up the first input box, & can key in the column letter, but clicking OK doesn't do anything. Yesterday, I had it so I could click OK & the box would go away, but nothing else happened & the second box wouldn't work right.

THEN, I started trying to figure out how to do an array formula in a macro & my head nearly exploded! I have a terrible time trying to understand written descriptions if they're in "tech speak", so it was all greek to me.

Here is all the farther I got with the macro:

Code:

Sub ClearingRsch()
' Jenny 10092011
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual

[Code] ......

## Convert Array To List

Sep 26, 2008

I have a data array which i would like to convert to a list. Sort of the reverse of a Pivot Table

See example below
I would like to turn this

Account Jan Feb Mar April etc..
001 59 30 25 40
002 12 20 32 29
003 5 13 27 39
004 10 11 12 13

Into This

Account Month Amount
001 Jan 59
001 Feb 30
001 Mar 25
001 April 40
002 Jan 12
002 Feb 20
002 Mar 32
002 April 29
003 etc...

There is a sample of the data file attached.

## Convert Code Into An Array

May 9, 2008

I have a list of code that it has been suggested to me will work a lot more efficiently by using an Array.

Sub Auto_Open()
Sheet1.ComboBox1_click
Sheet2.ComboBox1_click
Sheet2.ComboBox2_click
Sheet3.ComboBox1_click
Sheet4.ComboBox1_click
Sheet6.ComboBox1_click
Sheet6.ComboBox2_click
Sheet10.ComboBox1_click
Sheet10.ComboBox2_click
Sheet11.ComboBox1_click
Sheet12.ComboBox1_click
Sheet12.ComboBox2_click
Sheet15.ComboBox1_click
Sheet15.ComboBox2_click
Sheet16.ComboBox1_click
Sheet16.ComboBox2_click
Sheet17.ComboBox1_click
Sheet17.ComboBox2_click
Sheet18.ComboBox1_click
Sheet19.ComboBox1_click
Sheet19.ComboBox2_click
End Sub

All the code does is refresh the selection list in a combo box so it is up-to- date when the workbook is open.

## UDF - How To Send Range And Convert To Array

Dec 5, 2011

I want to have a user-defined function where the user sends a range (i.e. "A1:J1") and each cell is viewed as a member of an array. I can do this if the user sends "A1,B1,C1,D1,E1,F1,G1,H1,I1,J1", but this is very cumbersome. I tried the following code:

Code:

Public Function CreateDenom(DenomValues As Range) As Variant
Dim tmpArr() As Variant
Dim c As Range
For Each c In DenomValues
tmpArr(c) = c.Value
Next c
CreateDenom = UBound(tmpArr)
End Function

This won't be the end product of course, but it's a starting point if I can get it to work. However, I get an error stating that "A value used in the formula is of the wrong data type."

## Convert Variant To Typed Array

May 23, 2007

I am using strongly typed code, but I am also pulling data from worksheets into variants. e.g.

Dim MyArray As Variant

MyArray = [MyNamedRange]

is there any shortcut to convert the variant to a typed array, which doesn't just involve looping throught the variant and using a casting function, e.g.

Dim MyArray As Variant
Dim typedArray() As type

MyArray = [MyNamedRange]
typedArray = shortcut(MyArray)

## Convert Range Fields To Array Elements

May 2, 2013

I have a variable that gets set to an address range:

Code:

In the first loop that executes this command TAG_RANGE gets set to \$A\$1:\$A\$39

I want to loop through the values in that range and run tests against them. Is there a function that will take the values in the address range an convert them into an array so that I can use something like this:

Code:
For Counter = LBound(TAG_RANGE_ARRAY) To UBound(TAG_RANGE_ARRAY)

[run tests]

Next

Or is there someother direct way to do this other than creating a loop that fills the array element by element

## Convert Comma Delimited Cell To An Array

Feb 15, 2010

{= SUM(IF(({325,481,342,440,425}=ID)*(\$A37=DateRng)*1, ROUND(Sales,2),0))}
I am currently using this formula to retrieve total sales by day for each team and it works perfectly. Data is stored in columns by Date,Salesman ID,Sales.

I would like to replace the array portion with a vlookup to return the array set so i can use drop-down to select different teams and see the sales for that team.

{=SUM(IF((vlookup(TmName,Teams,2,0)=ID)*(\$A37=DateRng)*1,ROUND(Sales,2),0))}
This is the function as I thought it would work, but the vlookup returns "325,481,342,440,425" as a string not an array.

## Converting 3x10 Array To A 1X30 Array To Run A Match Formula

Apr 7, 2009

Say I have 3 columns of data: A1:C10 and I want to run a Match() function on them all together to see if I get a match any one those cells, say the value of have in X1.

Since, Match only allows a One-Column lookup array.. is there a way to "concatenate" or "append" the 3 columns together within a formula so now I would be looking to Match in an array that is 1 column * 30 rows?

Basically want to convert =Match(X1,A1:C10,0) to =Match(X1,A1:A30,0) without moving around the raw data in the sheet.

And I want to avoid doing an AND or OR formula that uses 3 separate MATCH() for each column.

I have a hunch that the MMULT or MMULT/TRANSPOSE functions are involved, but can't seem to get it right.

## Convert Byte Array Containing Floating Point To Single

Sep 6, 2007

I have a byte array that contains a 4 byte floating point number. How would I convert this byte array to the single typed floating point number it contains?

## Index Match Array New Formula Not Array?

Nov 6, 2013

Is there anyway to recreate this formula w/o it being an array ?

## Concatenate An Array (using Array Formula)

May 18, 2007

I just wanted to concatenate a few cells using an array formula like this:

{=SUM(IF(B2:J2="";0;B2:J2))}

Well, this does not work. I have no idea why it fails. Any solution to this without scripting?

## Using Array Variable Instead Of Array Formula

Jun 30, 2006

i need to replicate what i did using array formulas with VBA macro (array variable). to make things clear and simple i created an example for illustration only. look at it & u will find what i did & what i need to do ,much of it
in writing so that i accurately describe my problem. attached is my example

## "You Cannot Change Part Of An Array" When Editing Array Formula

Aug 25, 2006

I am trying to copy or edit a cell thats has the following formula (see below), I keep getting this message "You cannot change part of an Array!"

=If(ROW(\$A2:\$A8)-ROW(A2)+1>COUNT(W2:W8),"",INDEX(\$A:\$A,SMALL(W2:W8,ROW(INDIRECT("1:"&ROWS(A2:A8))))))

## Convert Array Into Text And Remove Duplicate Entries From Text In Cell?

Jun 12, 2014

I have the following two columns, and would like to obtain for each individual Company, the corresponding Country values excluding duplicates as text in a single cell.

Company 2Country B
Company 2Country C
Company 3Country C
Company 3Country C
Company 5Country A
Company 5Country C
Company 5Country C

For example:
- For Company 2, a cell containing "Country B, Country C"
- For Company 3, a cell containing "Country C"
- For Company 5, a cell containing "Country A, Country C"

I've approached generating an array using an IF statement, as in =IF(INDEX(A1:A8="Company 5",,),INDEX(B1:B8,,)," "), which returns the following array: ={" ";" ";" ";" ";" ";" ";" ";"Country A";"Country C";"Country C";" ";" ";" ";" "}.

The question is: how do I get that array to produce, as text in a cell: "Country A, Country C". Note that the duplicate Country C has been removed.

There are a few "StringConcat" User-defined functions that I've found elsewhere on the internet, but they don't seem to be able to handle to conditionally generated IF Index array, which I would think is key to parsing between Countries corresponding to each Company in the list.

## Convert Formula Into Value

Nov 12, 2008

How to convert the excel formula into its value? I know the easiest way is to copy and use paste special then "value" options but is there a way to make it automated in case the desired output value has resulted.

HTML example:
A1 B1 C1 D1
1 2 A1+B1 Yes/No

on the above example, if D1=Yes, the output C1 will become value equals to 3 and the formula will be remove, if D1=No, the formula will still remain.

## Convert Formula To VB

Jun 16, 2009

the following formula to be converted to vb for my userform.

=ROUNDUP(+J16-50000,-3)*0.00364+352

this is part of the vb that i'm working with and i need to change the part after "Then Amount =" I just can't seem to work out where to put the roundup bit.

## Convert Formula To VBA?

Jan 5, 2013

The formula below is in cell H3. My requirement is to remove the formula and instead have a macro do the same thing that formula does.. in cell H3.

Formula:-

PHP Code:

=IF(COUNTA(F:F),MIN(IF(ROW(F:F)>MATCH(TRUE,F:F<>"",0),IF(F:F="",ROW(F:F))))+2-MATCH(TRUE,F:F<>"",0),"")

## Formula Convert Into VBA

Jul 7, 2009

=SUMIF(Log!\$B:\$B,\$A\$2&" "&\$A4,Log!\$C:\$C)

How would I convert this into VBA

## Convert Vba To Excel Formula

Jul 5, 2012

I want to convert code below to excell formula

VB:
Sub Fonksyon171819()
Dim total As Double, i As Integer
total = 0

[Code]....

## Convert Formula Into VBA Code

Feb 17, 2014

Below is my requirement and i have to convert formulas into vba code:

If dt = "A0" Or dt = "A1" Then

Sheet1.Range("K").Formula = "\$J/\$ I" ' Formula is k=J/I
Sheet1.Range("K:K" & last_row).FillDown

Sheet1.Range("L").Value = "20.00%"
Sheet1.Range("L:L" & last_row).FillDown //Formula is L=20% for now i have just hardcoded the value there.

Sheet1.Range("M").Value = "=(\$K-\$L)* 100" 'Formula is M=(K-L)/*100
Sheet1.Range("M:M" & last_row).FillDown

End If