# Can formulas be too big for VB

#### Todd Bardoni

##### Well-known Member
I wrote a rather large formula that works in Excel but, when I tried to record it in VB it said it couldn't record. So, I copied it, went into VB and Pasted it. But then I got a compile error. The formula is 562 characters long. Here's the formula:

=IF(AND(C2="New",DCOUNT(BE:BE,1,BE1:BE5)<10),"02-"&"00"&DCOUNT(BE:BE,1,BE1:BE5)&"N",IF(AND(C2="New",DCOUNT(BE:BE,1,BE1:BE5)<100,DCOUNT(BE:BE,1,BE1:BE5)>=10),"02-"&"0"&DCOUNT(BE:BE,1,BE1:BE5)&"N",IF(AND(C2="New",DCOUNT(BE:BE,1,BE1:BE5)>99),"02-"&DCOUNT(BE:BE,1,BE1:BE5)&"N",IF(AND(C2="Change",DCOUNT(BF:BF,1,BF1:BF5)<10),"02-"&"00"&DCOUNT(BF:BF,1,BF1:BF5)&"C",IF(AND(C2="Change",DCOUNT(BF:BF,1,BF1:BF5)<100,DCOUNT(BF:BF,1,BF1:BF5)>=10),"02-"&"0"&DCOUNT(BF:BF,1,BF1:BF5)&"C",IF(AND(C2="Change",DCOUNT(BF:BF,1,BF1:BF5)>99),"02-"&DCOUNT(BF:BF,1,BF1:BF5)&"C",""))))))

### Excel Facts

What is the last column in Excel?
Excel columns run from A to Z, AA to AZ, AAA to XFD. The last column is XFD.
That's a truely hideous formula

Anyway, re the vba - when using the macro recorder, you don't record formulas, you record actions (select cell, change format etc). & the syntax of vba isn't the same as for excel formulas, so unfortunately you can't just pick up a spreadsheet formula & drop it into a macro.

If it works on the sheet, what are you trying to do?

My question was misleading. I want VB to write the formula into a cell. I've done it a million times before. I record a macro to write the formula into a cell. It was working but I added more arguments to the formula and when I tried to record it I got an error msg saying can't record. It appears that its too big for VB to read. Here's what it looks like in VB:

Range("A2").FormulaR1C1 = "IF(AND(C2="N",DCOUNT(BE:BE,1,BE1:BE5)<10),"02-"&"00"&DCOUNT(BE:BE,1,BE1:BE5)&"N",IF(AND(C2="N",DCOUNT(BE:BE,1,BE1:BE5)<100,DCOUNT(BE:BE,1,BE1:BE5)>=10),"02-"&"0"&DCOUNT(BE:BE,1,BE1:BE5)&"N",IF(AND(C2="N",DCOUNT(BE:BE,1,BE1:BE5)>99),"02-"&DCOUNT(BE:BE,1,BE1:BE5)&"N",IF(AND(C2="C",DCOUNT(BF:BF,1,BF1:BF5)<10),"02-"&"00"&DCOUNT(BF:BF,1,BF1:BF5)&"C",IF(AND(C2="C",DCOUNT(BF:BF,1,BF1:BF5)<100,DCOUNT(BF:BF,1,BF1:BF5)>=10),"02-"&"0"&DCOUNT(BF:BF,1,BF1:BF5)&"C",IF(AND(C2="C",DCOUNT(BF:BF,1,BF1:BF5)>99),"02-"&DCOUNT(BF:BF,1,BF1:BF5)&"C",""))))))"

I should mention that this formula's funcition is to create a log number. Basically, on another sheet I enter data. I press a button that has a macro assigned to it. The macro, basically, writes links to another sheet. The above formula creates a log number based on the criteria. Its probably a half-*** way of doing it, but it works really well, except for the fact now that I added more arguments to the formula VBA can't seem to record it. Its just seems strange that it works in the cell but VBA can't record it.

Nevermind...I figured it out...I forgot that VBA doesn't read text and formulas the same way it looks in Excel...boy, do I feel dumb.

Replies
5
Views
250
Replies
1
Views
335
Replies
1
Views
227
Replies
5
Views
403
Replies
12
Views
884

1,218,691
Messages
6,143,943
Members
450,516
Latest member
shironokuro

### We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.

### Which adblocker are you using?

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

### Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

### Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back