Formula Syntax In VBA "For-loop"
Jan 7, 2010
I have built a summary page in a multi-sheet workbook, this summary page extracts data from each respective sheet and enters it into successive rows. Each row contains data variables that are mined from each spreadsheet, there are multiple columns and multiple rows (one row per spreadsheet).
I've used a sort of 'header' format for each individual spreadsheet (account sheet) in which I use complicated formulas to data mine standard data sets below the header.
I've done this because I discovered I do not understand how to use this for-loop to run an active formula in each sheet and then output the unique result, THEN continue on to mine the next sheet. I have however successfully been able to grab a data value from a complicated formula and copy paste special values.
I use a For-Loop which creates the summary rows in a different sheet called 'Market'.
My problem is that I would like to actually use a formula in my For-Loop and not just reference a static value from the referenced sheet. The simplified code is below, with my error highlighted in red.
View 13 Replies
ADVERTISEMENT
Aug 31, 2007
This line fails, is Method Range Global error.... What is wrong w/ this, and how should it read?
If Range("D", i).Value = "Need Parent" Then
2nd Question- The following line is my normal method in doing a simple For Next Loop. What is the difference between using this one, looping through the cells and the first one referring to a Range for the loop?
If Cells(i, "D").Value = "Need Parent" Then
View 9 Replies
View Related
Jul 19, 2006
I´m writting a macro. It works find until a certain point. When I want to change some outputs of the macro without changing the syntax, it display an error mesage while runing the macro. It says Else without If. Which is quite disturbing because the Else was not creating any problem before. Here is my macro before I changed the conditions (this one work nicely)
Sub Copy_Sheet_Beta()
Set wba = ActiveWorkbook
On Error Resume Next
If IsWorkbookOpened("Projekt.xls", "C:Documents and SettingsfrederikSkrivebordRedd Barna") Then
Workbooks("Projekt.xls").Activate 'In case open, just activate "Projekt"
Else
Workbooks.Open Filename:="C:Documents and SettingsfrederikSkrivebordRedd Barnaprojekt.xls"
End If
Set wb = Workbooks("Projekt.xls")
wb.Activate
If Not SheetExists(wba.ActiveSheet. Range("C1").Value) Then
MsgBox "overall doesn't exist!"
Else........................................
View 2 Replies
View Related
Sep 17, 2008
What is wrong with the syntax of this formula?:
COLUMNS(INDIRECT("AverageDemand!$A7:"&A$7))+4
I'm getting #REF errors and I can't work out why...
View 9 Replies
View Related
Nov 27, 2009
I have this code for setting up a sheet to begin a calculation involving the solver add in. I am getting a "Run Time Error 13: Type Mismatch" on the line that inserts a formula into the cell. I have put the first offending line in bold in the code below. Is this a problem with syntax or is there something else that I have made a mistake on?
View 2 Replies
View Related
Dec 3, 2003
correctly using variables within functions used in formulas specified by VBA. Here's an example:
I want to place a formula within a workbook file called "Books 2003.xls" that goes to the version of the file for the previous year (or whatever year is specified) and does a Sum of a particular range (where that range is also specified as a variable) so it sums up the Total for the previous year for the same number of months that have data in them to date for the current year. Once VBA places the formula where it belongs, it should be able to always provide a running comparisson with the current year to date total and the totals for the same period for the previous year. Here's an example of the intent of this simple formula:
ActiveCell.FormulaR1C1 = "=SUM('[Books 2002.xls]Income Summary'!R4C2:R8C2)"
The workbook files will all be named the same way: Books 2002.xls, Books 2003.xls etc.... The range to be summed will always start at R4C2, but could then end anywhere from R4C2 (same as B4) up to R15C2 (same as B15).
I already have a routine that captures the value for the variable CurrentYear in the form "2003" and thus have another variable for PrevYear (= CurrentYear -1), and so then have a way to correctly specify the variable "BookName" to get the correct filename needed. I also have a variable for the CurrentMonth in the form of "1 through 12", and can use that to specifiy the correct RowNum needed to determine the end of the range (RowNum = CurrentMonth + 3).
I've tried to substitute the variables "BookName" and "RowNum" into the above formula with various combinations such as what follows, but I'm not getting the correct syntax with the right number of quotes etc...:
ActiveCell.FormulaR1C1 = ""=SUM('[" & BookName & "]Income Summary'!R4C2:R" & RowNum & "C2)""
This doesn't work, and I'd love to learn the correct rules for syntax when inserting variables into situations like this.
View 4 Replies
View Related
Aug 21, 2009
I'm trying to figure out how to enter the formula for conditional formatting if I want the selected cell value to be red when it is <0.
View 4 Replies
View Related
Sep 30, 2011
One of the formulas list whether or not an item is available or not. But when I try create a similar formula to indicate whether the item should be displayed or not I only end up with it being always displayed.
Code:
Option Explicit
Sub Reformat()
Dim wks As Worksheet
Dim iRow As Long
For Each wks In ActiveWorkbook.Worksheets
[Code] .......
what would be the correct format?
View 5 Replies
View Related
Apr 16, 2012
Below is the "real formula"
=IF(SUM($F$4-$E$4)= 0," ",SUM($F$4-$E$4)) 'If the value is 0 then enter a space in the cell.
And below is the VBA formula
"=if(sum(" & LastRowCell & "-" & FirstRowCell & ")= 0," & " " & ",sum(" & LastRowCell & "-" & FirstRowCell & "))"
The real formula works, but I am having having difficulties with the syntax of the VBA formula. The above VBA formula works to, but enters a 0 in the cell instead of a space.
View 4 Replies
View Related
Sep 25, 2012
I have two columns with values, and want to display "Valid" or "Invalid" in a third column, dependant on the two preceeding values.
If both column 1 and column 2 contain #N/A, then I want the third column to display "Invalid".
If the above is not true, then I want the third column to display "Valid".
I've been trying different syntax with IF/AND but cannot achieve the result.
View 5 Replies
View Related
Jan 7, 2014
I was able to get VBA to post this relative reference, which sticks the formula
=DATE(YEAR($D2),MONTH($D2)+6, DAY($D2)+1) into a cell in Col J.
All fine and dandy, works as it should with this formula.
Code:
.Cells(Row, "J").FormulaR1C1 = "=DATE(YEAR(RC4),MONTH(RC4)+6, DAY(RC4)+1)"
However, when I try this with a different formula =IF(ISNUMBER(SEARCH(C2,H2)),"REPEAT","SAFE"), I'm getting a compile error: Expected end of statement with this code:
Code:
.Cells(Row, "I").FormulaR1C1 = "=IF(ISNUMBER(SEARCH(RC3,RC8)),"REPEAT","SAFE")"
The error message highlights the word REPEAT. I suppose it's something with all the quotes throwing off where compiler thinks the end of the formula should be.
View 3 Replies
View Related
Jun 23, 2009
If the addition of two cells (a1 and b1) do not add up to more than 10 then I would like cell c1 to display the word FAIL
I've tried the following
If (a1 + b1 ) < 11 then c1 = "FAIL"
But it doesn't like it
View 4 Replies
View Related
Feb 24, 2014
I have the following code, which executes just fine:
[Code].....
The problem is that I need to run this again in a different column, and the data is held in another sheet that I have given the variable StepTwo to.
I'm not sure of the syntax to do this. Basically - this is what I need the code to do:
[Code] ....
Understandably this is totally incorrect, but it's the best I can do to explain what I'm actually trying to do....
The two parts of SUMIF are both held in a workbook that I've given the variable "StepTwo" to. Both sets of data are also held on Sheet(1) of that workbook.
View 7 Replies
View Related
Apr 19, 2012
I am using Excel 2007 in Windows XP. I am trying to change the worksheet referenced in a formula from the label of the worksheet to the index of the sheet. I want to use this macro in multiple workbooks, and the relevant sheets have different names but are all in the same position.
I used "record macro" to get the structure of my code. It gave me the line:
ActiveCell.FormulaR1C1 = "=SUM('8Nov11'!R[13]C[-4]:R[108]C[-4])"
I want to change that '8Nov11' to the 3rd worksheet from the left, so something like:
ActiveCell.FormulaR1C1 = "=SUM(ThisWorkbook.Sheets(3)!R[13]C[-4]:R[108]C[-4])"
I can't get this to work, and I can't find the syntax for this anywhere. I've tried with and without quotes, exclamation points, changing to A1 notation and using "Range," "Sheets," "Worksheets," "Item(3)", and many other combinations, but haven't gotten it right.
Most of the errors I get are "Runtime Error 1004: Application-defined or object-defined error."
View 3 Replies
View Related
Jul 5, 2012
B1=Name of WorkSheet
B2=Name of 2nd Worksheet
I am trying to write a sum formula using Indirect so that the end-user can enter the names of the sheets in B1 & B2 (the values are always in cell F5 on each sheet). I thought this would work but it is throwing a REF# error.
=SUM(INDIRECT("'"&B1&":"&B2&"'!F5"))
with some added spaces for clarity:
=SUM(INDIRECT(" ' " & B1 & " : " & B2 & " ' ! F5"))
View 9 Replies
View Related
Jul 1, 2007
I trying to write a conditional formula to test data in a cell to see where it falls between certain values, and depending on the data in the cell, will display a message in another cell showing what level has been attained. It's a long formula and I may not have the syntax correct. Can someone look at this and tell me where I have went wrong? All I get in the target cell is "################".
Here is the formula:
Try this formula. Array formulas will have curly brackets {} emcompassing the ENTIRE formula. You do not add these, you Enter the formula with Ctrl+Shift+Enter and Excel will add them (details: Array formulas). Many more Excel Formulas
=IF(c13<1600,"Not at prize level yet",IF(AND(c13>=1600,c13<=1999.99),"You have reached level 1",IF(AND(c13>1999.99,c13<=2499.99),"You have reached level 2",IF(AND(c13>2499.99,c13<=2999.99),You have reached level 3,IF(AND(c13>3000,c13<=3499.99),"You have reached level level 4",IF(c13>3500,"You have reached the top level!!"))))))
View 4 Replies
View Related
Jun 7, 2006
I want to consolidate certains cells in 30 identical worksheets in a workbook. I understood that if I use the 3-D formula method, that I could insert new identical worksheets into the range of worksheets and the consolidated totals would update. Is that correct?
I cannot seem to get the syntax to work. When I read the Excel Help file it gives an example of =sum(sheet2:sheet7!B3) but I don't understand how Excel could answer this ( if the worksheets were named Sheet2,sheet3,sheet4 etc up to sheet7)
In my example, the formula is clearly wrong. Why does it not use the single quotation marks '? I cannot find references to the proper syntax anywhere. I have your training program but this does not spell it out for me either. If I use Data>Consolidate then I have to labouriously do this for each cell that I want to consolidate.
View 2 Replies
View Related
Dec 3, 2009
I'm trying to write a macro that will insert a excel formula into a specific cell. When I try to run the macro I receive a compile/ syntax error. I don't understand why as the formula works in excel. Here is the code (formula only)
View 4 Replies
View Related
Jun 24, 2009
I'm trying to have a Formula that I created in excel to be expressed through loop in VB.
Some parts of the Formula should remain constant, unchenged.
=IF(O2="","",VLOOKUP(Sheet1!A6,Sheet2!A1:O200,11,FALSE))
The parts of a code that are in red should remain unchanged though all 200 lines.
View 9 Replies
View Related
Apr 12, 2007
I only grasp the basics of loops and not any experience w/ formulas in VBA to date.
For each item in col "I" run this formula (the cell references are relative)
=RIGHT(I6,LEN(I6)-FIND(" ",I6))
I am only at this point so far:
Sub ItemName()
Dim wb As Workbook
Dim ws As Worksheet
Dim i As Integer
Dim LRow As Long
Set ws = Workbooks("TGSItemRecordCreatorMaster.xls").Worksheets("Record Creator")
LRow = ws.Cells(Rows.Count, 9).End(xlUp).Row
For i = 6 To LRow
=RIGHT(I6,LEN(I6)-FIND(" ",I6))
End Sub
The basic function of the loop is to Delete the first term of each cell in the range including the first space.
example:
Enjoi Barletta Deck
Resulting in:
Barletta Deck
View 9 Replies
View Related
Nov 1, 2007
I want to subtract one date from another to find out the total waiting time, and repeat this action for multiple rows.
I'm trying to use an R1C1 formula within all of this.
Dim TotalTimes As Long
Dim iTime As Integer
TotalTimes = Cells(Rows.Count, 4).End(xlUp).Row
For iTime = 1 To TotalTimes
Cells.Find("Waiting Time").Offset(iTime, 0).FormulaR1C1 = [R[iTime]C[-1]-R[iTime]C[-2]]
View 9 Replies
View Related
Nov 25, 2008
Image column A, starting at A2 to LASTROW of say 10, I have the LASTROW value stored in a variable.
Each cell in the range contains a file location/document name, example:
C:Documents and Settingsuser-idDesktopDOCSDoc01.xls < cell A2
this repeats for A3, A4, to A10, for each different document.
So starting at LASTROW + 3, I've created a new Header for Hyperlinks: and below that I want to create the 10 hyperlinks for each of the 10 documents above.
formula is =hyperlink(a2,a2) and then (a3,a3) and so on...
View 9 Replies
View Related
Aug 21, 2014
i have the following macro that loops through 100 tickers in sheet 1, gets the trades for each, pushes each ticker's trades to sheet 2 to create a list of all trades. The problem is that I just get a #N/A requesting data for each ticker. This seems to be a wider problem with fetching external data from Bloomberg. However, I cannot seem to get a fix for it.
Sub Macro()
On Error Resume Next
Sheet2.Range("B3:E65536").ClearContents
[code]....
View 1 Replies
View Related
Mar 13, 2014
I am trying to get the following thing started but my loop doesn't succeed. I've got 3 columns. I need to place a formula in column C if A is empty.
Example:
A2 contains data so do nothing.
A3 is empty do: C3=B3+B4.
A4 contains data so do nothing.
A5 contains data so do nothing.
A6 contains data so do nothing.
A7 is empty do: C7=B7+B8.
this is what I've got so far:
[Code] ..........
View 4 Replies
View Related
Jun 23, 2013
I keep getting errors with this vba code. I'm trying to make 10 new worksheets with the name of each worksheet in the Newname array. I'm trying to put the same formula (with the difference that each formula would take from a different "Newname" file. I'm trying to put first formula from A1 to A 560 and second formula from B1 to B 560.
Sub Namesheetformula()
For x = 1 to 10
Newname = Choose(x,"A","B","c","d","e","f","g","h","i","j")
Firstformula = if(isna(match('Master!'A1,'Newname'!A1:A560,0),"",'Master'!A1)
[Code] .....
View 9 Replies
View Related
Apr 14, 2014
LastRow = Worksheets("Sheet1").Cells(Rows.Count, "K").End(xlUp).Row
For i = 2 To LastRow
Worksheets("Sheet1").Formula = "=IFERROR(+IF(+K2=0,0,+R2/(+IF(+K2>L2,K2,L2)*$AE$1/365)/P2),0)"
If (Worksheets("Sheet1").Range("AE" & i).Value < 1.5) And _
((Worksheets("Sheet1").Range("K" & i).Value > 0) Or (Worksheets("Sheet1").Range("L" & i).Value > 0)) Then
Worksheets("Sheet1").Range("AE" & i).Font.Color = 255
End If
Next i
My loop here works just fine, and my Formula works in testing. However when I move my formula inside the loop I get an error.
Is the syntax wrong in this line = Worksheets("Sheet1").Formula = "=IFERROR(+IF(+K2=0,0,+R2/(+IF(+K2>L2,K2,L2)*$AE$1/365)/P2),0)"
View 5 Replies
View Related
Aug 4, 2009
I have a spreadsheet with 10,000 rows. In column A dates are mentioned and in column B I'd like to calculate the specific Quarter via VBA code as I can't have formula's in my sheet.
My VBA code is:
Sub QuarterCalc()
Dim myCell As Range
Application. ScreenUpdating = False
For Each myCell In ThisWorkbook.Sheets("Data").Range(Cells(1, 2), Cells(10000, 2))
myCell.Formula = "=INT((MONTH(RC[-1])-1)/3)+1"
myCell.Offset(0, 0) = myCell.Offset(0, 0).Value
Next
Application.ScreenUpdating = True
End Sub
View 9 Replies
View Related
May 10, 2006
trying to loop through an array, with each loop calculating a formula (VLOOKUP) for one cell based on the values of a cell in another sheet.
Not sure but I think it has something to do with looking up a text value while the loop returns a value.
Private Sub ExpandFormula()
'calculates Counttarget formula in COUNTTARGETS sheet across required range
Dim CellsDown As Long, CellsAcross As Integer
Dim i As Long, j As Integer
Dim TempArray() As String
Dim TheRange As Range
Dim CurrentValue As String
'get the dimensions
CellsDown = Worksheets("SEPARATE").Range("D9").Value
CellsAcross = Worksheets("SEPARATE").Range("E9").Value
'redimension temporary array
Redim TempArray(1 To CellsDown, 1 To CellsAcross) .....................
View 9 Replies
View Related
Feb 4, 2009
i am trying to do something along the lines of. a For Next Loop that selects the cell N6 and inserts the formula.
$K$7*F6+$L$7
then fill down to the cell N754
then selects O6 and inserts the formula
$K$8*F6+$L$8
then fill down to cell O754. repeating this until there are no more values in either the K or L column. in the attatched spreadsheet i have deleted the values from 50 something down to 754 but the idea is still the same.
so that each formula inserted keeps the cell from column K and L constant when filled down but F changes, then when the next column is used(ie. from column N to O), the next row in the K and L is used but F starts from F6 and changes as it is filled down again.
View 5 Replies
View Related
Oct 10, 2013
I use this code in Column M to convert Column N
Code:
=IF(LEN(N2)>
I am looking to loop down Column N & O and replace , insert colon for both column N and O I started with is code
Code:
Sub FixTimeFormat()
Dim TimeNumcol As Integer
Dim ConvertedTimeCol As Integer
[Code]....
View 4 Replies
View Related