Different Interpretations Of Zeroes And Blanks After Passing To Extra Function
Feb 13, 2014
see the attached. The array formulas in B2:C3 are operating on the table in E2:F5. These are quite simple formulas as you'll see.
The formula in B3 is identical to that in B2 apart from the fact that the first array is wrapped in an IFERROR (there are actually no errors in the array, but that's not the point).
As you can see, the formula in B2 evaluates E3 as ="", and so the corresponding entry in F3 is ignored in the sum. Quite normal.
However, the identical formula, but with an IFERROR first acting on Array1 now evaluates the same cell as <>"", and so F3 is this time included in the sum.
What action has the IFERROR had on this array? Clearly, E3 is not an error, so a "blank" should still be passed, unchanged, to the function.
I have included identical versions of the formulas, but with Named Ranges replacing the actual range references. The reason is that, with these versions, if you step through the formulas with Evaluate Formula, for example with the formula in C2, you can see that Excel "temporarily interprets" the blank in E3 as a zero (this is nothing new, though I've never fully understood why it can't display a "" here as well) before then equating this "zero" as being a "blank".
Perhaps somehow, after being passed to the IFERROR, this "zero" is processed so that, when passed on, even though it still “displays” as a zero, for some reason it is no longer considered equivalent to "".
It seems to work. Are there any problems with it? Is there a better way?
Code: Function myRangePassExample(RangeA As Range) As Double Dim ArrayA As Variant, ArrayB As Variant Dim iLo As Integer, iHi As Integer, i As Integer Dim jLo As Integer, jHi As Integer, j As Integer Dim Sum As Single ArrayA = RangeA.Value iLo = LBound(ArrayA, 1) iHi = UBound(ArrayA, 1)
I want to select a cells value from a Data Validation Box ( Achieved ) then based off of that selection ( value ) pass it into a slicercache, as follows :
Select a value from a drop down list in cell A1 Based on selection update slicercache by passing the value of A1 to it
So far i have : The bold is the part where i need to replace with whatever is selected from cell A1. Must be possible ...
With ActiveWorkbook.SlicerCaches("Slicer_Contract_15") .SlicerItems("BRUTE").Selected = True End With
Would be best if this code ran on cell A1 click ...
I'm trying to pass a multidimensional array to a function that I have defined, but I receive an error about an object mismatch. Here is what I have in regards to the array and function. What should I change?
Code: Dim diffArray() As Integer Dim countArray() As Integer Redim countArray(count,2)
diffArray = getRunningSum(countArray) End Sub
Public Function getRunningSum(ByRef countArray() As Integer) As Integer() 'Code here...... End Function
I have a function which i am using as part of a macro. The macro itself works fine and locates a search string i type into an input box across ALL worksheets in an excel doc. However, i have a function which takes the results and prints it to the front page, but when i try to use the worksheet name which has been passed to the function, i get the error: Run-time error '42': object require. this happens when i get to a line of code which says
I will post my code and point out where the error occurs.
Sub GetProd() 'Averages Daily Production over the month
Dim WellRange, MonthRange As Range Dim Month_ As Integer TotWells = Sheets("R").Cells(1, 2) TotMonths = Sheets("R").Cells(1, 4) Month_ = Sheets("R").Cells(2, 4)
For Flag = 1 To TotWells Set WellRange = DefineWellRange(Flag) WellRange.Select <-----Used this To check If Range gets passed back properly. For c = 1 To TotMonths Set MonthRange = DefineMonthRange(Month_, (WellRange)) <---Error Here Next c Next Flag
End Sub ...
So the error occurs in the main "GetProd" Sub at the point when it calls the DefineMonthRange Function, its a 424 "Object Required" Error. Just before this is called I have a "WellRange.Select" which I was using to make sure that WellRange is in fact a range, and it does select the appropriate area.
So My question is of course, why I get an object error even though I am passing a range to a function which is expecting a range?
Depending on time of day and computer I am sitting in front of I am using:
WinXP Pro SP2 with Excel 2003 Win7 Pro SP2 Excel 2007 Win7 Pro SP2 Excel 2010 on PC Win7 Pro SP2 Excel 2010 on Mac Mini running Boot Camp OSX Excel for Mac 2011
I have only tried this on Win7 Pro SP2 Excel 2007 but need it to work on all.
I enter the values 0, 1, 2 ... 89, 90 in cells A1 to A91
I select A1:A91 and name the range 'angle'
I create a user defined function:
Public function sindeg(value As Double) as Double sindeg = sin(worksheetfunction.radians(value)) end
I want 'value' for the function in a cell to be replaced by the corresponding value in the same row (or column) in the named range 'angle'. For example (using commas as column separators). This works for Excel functions like sin, cos, radians, etc.
Column A = input. Columns B, C, D, E and F all calculate the same value by row. Column G fails with a #VALUE. In row 1 the value of angle[1] = 0 therefore column D = C = B = sin(0) = 0. In row 2 angle[2] = 1 therefore B = C = D = 0.017452
How can I get the user defined function sindeg(value) in column G to accept the named range variable 'angle' like the Excel function radians(value) accepted it in column D?
This functionality should work horizontally as well as vertically. For example enter 'angle' A1 to CM1 then have sindeg(angle) filled from A2 to CM2. It should also work in the case where the named range 'angle' is a single cell.
I am sure that this is a simple variable type definition problem in my user defined function: should the input variable be defined as type Range? Or something more exotic?
The brute force approach is to have the function determine the input value by passing in the named range, working out dimensions, calculating offset between the cell the function is in and top (left) of named range, then counting down (right) to pick the correct value. However I cannot see adding all that code to EVERY function. Occam's Razor says there has to be an easier way since Excel built in functions seem to do it readily.
code to pass a range say (A1:A3) as an arguement among other arguements to a custom function and then reading this as an array inside the custom funtion
I have the following codes in my spreadsheet, they are pretty much the same and both used to work perfectly. However, now the first code returns a Type Mismatch '13' on line beginning mynum= and the second one works perfectly.
I'm using Excel 2003 and I'm trying to make my LINEST function and the source cells for a scatter graph use the cell range specified in another cell in the document. I figured out that it was simple to do the following:
But I can't figure out how to do this in a larger function. I've tried a few things but none of them work. Here is an example where I want it to do a LINEST with y values in cells Ja - Jb and x values in cells Ia - Ib (where a and b are integers specified in cells I250 and J250 respectively):
I have a spreadsheet where a column has many cells being empty and others with values. I need to use copy-paste skip blanks to another column so it only overwrites cells that contains values. BUT The cells in the column appears to be empty, not blank, when I try use the copy-paste skip blanks it doesnt work. However, when I press delete in every empty cell the copy-paste skip blanks works for those cells.
Do you got a fast method to make all the empty cells blank?
I'm working on a macro, where some of the action has to do with adding zeroes in front of numbers, so that every number gets the same amount of digits. 4 to be exact. This means that the number 1 is transformed to 0001. 12 -> 0012, and of course 123 will be 0123. You get the point. Every number gets 4 digits, and 0 is the filler.
I am a total newbie when it comes to these things, so my script consists of shameless cutting and pasting from other peoples works. This also means that I don't have the slightest clue of what to do when things aren't going my way.
Everything is going perfectly, except for one important thing: The macro treats numbers with decimals in a way I absolutely don't want it to. I want for example 12,3 to become 0012,3 -- but the macro insists on not changing it at all. I figured this happens because the comma (and the numbers behind it) are counted too. Therefore, a number like 12,3 already has four digits. But I want it to be 0012,3! This is making my head hurt.
My question is: Are there any way of making the program ignore the comma and all the other digits behind it? So that they are not counted. Or is there another way of dealing with this problem?
I need a macro to do a comparison between two spreadsheets, and one part of it is throwing me, as I need to compare apples to oranges. Here's the situation:
Sheet A has the data noted like this: PAC 11000 11100 11500, etc.
All data should have 5 digits, and my numbers range from 11000 to 87028, though quite a few are skipped.
Sheet B has data like this: PAC 110 110-CBS 11000 11100-ING 112 11500-L
How can I change sheet B to: 1) Drop off the dash and anything following? 2) Add trailing zeroes to make sure all numbers are 5 characters in length?
I wonder if you can help me in this question. I have a MIN function which calculates the smallest value in a list of percentages and then divides each percentage by the smallest in the list. It works fine until one of the percentages becomes zero with the resulting division-by-zero error. Do you think it is possible to make the MIN function to exclude all instances (there may be more than one zero) of zeroes from its calculation? I have attached the spreadsheet.
I am trying to figure out a way to delete the zeroes using VBA codes .
There is a spreadsheeet that contains company code, account, amount1 and amount2. If both amount1 and amount2 are zero, the VBA code will delete the entire row automatically. I am thinking of the With Range feature, but how I would determine what is the lastrow of the spreadsheet? Also how I can find the first zero and then the second zero in the same row? I vaguely recalled the find function, but can't write out the codes.
I have a series of 29 categories, each with a value to make a bar graph. The values aren't large, and a large portion of them are zeroes, I'd say on average about 3/4 have a zero as the respective value. Is there a way to make the bar graph ignore the ones that have a zero value and not put them on? Since every week these numbers can change, I would prefer if the method didn't involve some kind of sorting to get the values that aren't zeroes seperate from the rest.
When "Show a zero in cells that have zero value" is checked in "Display Options", all cells in the worksheet with zero values display "0". Can selected individual cells in such a worksheet be formatted to hide the zeroes they contain?
How do I go about having a formula which will return the number of times 0 is repeated in a column sequentially?
e.g.:
0 1 0 0 0 0 0 1 0 0 0
The idea being that after row 7 (there have been 5 consecutive zeroes), the count would reset when it hits a value greater than zero, and then count again once it hits a zero again.
I have a spreadsheet that was given to me o work on that has a field that contains an ID #. I need to import the file into Access after massaging it a little. The table that it will be imported to requires eight digits including leading zeroes. The data in the ID field of the spreadsheet I was given is displayed in the correct eight digit format, but the actual data is missing the leading zeroes so when I try to import it, I lose them. Is there a quick way to reformat that field in the spreadsheet to add the leading zeroes to the data?
Here's what the field looks like:
Displayed: Data stored as:
ID ID --------- --------- 00568695 568695 10423568 10423568 02389999 2389999 00023567 23567
**Note the numbers "00700" are always 5 digits long also note the extension is always ".doc" (4 characters long). However the other parts, AB_XYZ etc vary in length based on the worksheet.
I need to ADD or Subtract "+1" or "-1" from the 5 digit number for example make "00700, into 00701"
I currently tried to separate the data into columns which provides me with the number 00700 isolated in its own cell and then I simply add or subtract 1. In that isolated cell I am able to add "leading zeroes" and it works great.
The Problem is that when I combine the separated cell data "=A1&B &C1" with the New number (in this case 00701") the problem that I run into is the leading zeroes do not follow over to the combined cell and I am left with a final filename like this "AB_XYZ_0408_701.doc" - That is missing the leading zeroes.
Also if you have a more advanced formula that could simply add and subtract "1" from the 5 digit number that would be ideal.
How to find a tweak to my formula so as to displays blanks rather than zeroes.Here is the formula I have right now:
=OFFSET(L$3,MATCH($B110,$B$4:$B$107,0),0)
I have many rows of data in a worksheet, with the headings in Column B. At the bottom of the worksheet (beginning in row 110), I created a dropdown menu (Validation->List) to select which rows of data from above to be displayed. I simply want to re-display the chosen rows exactly as they are above. But using this offset formula, all the blanks from above become zeroes.