Close Window
Got an Excel Question?

Application.worksheetfunction.match 2 Criterias

hi all

how can I add a second criteria to the below vba code line to match up a second criteria in column b

lrow = Application.WorksheetFunction.Match(searchshop, Range("A1:A65000"), 0)

thanks All

- Ask any question about Excel and have it answered in no time.

Similar Excel Tutorials

Return Vlookup results on partial matches of a cell's contents. You could type the start, end, or middle of a looku ...

' These modules exist just to make other VBA code easier to write and more readable ' For example, you can just ent ...

Find the Min or Max value in a range and, based on that, return a value from another range. This is an advanced lo ...

How to delete duplicate values from a data set in all versions of Excel.  This includes Excel 2003 and earlier and ...

Helpful Excel Macros

- This Excel macro allows you to filter a data set on multiple columns and criteria at once. This means that you can filt

- This UDF is a Vlookup function that searches the entire workbook in Excel. The syntax and usage of the function is exac

- This macro will allow you to specify certain criteria and then to delete rows based upon that criteria. You will choose

- This Excel Macro works like a better Vlookup function because it returns ALL of the matching results. Run the

- This free Excel macro filters data in Excel based on multiple criteria for one field in the data set. This macro uses t

Similar Topics


I would like a formula that would list all the items in row B that match the criteria in row A. the first cell with formula would list the first item, the second cell with the formula would list the next item, and so forth. Also, column B might have a duplicates that should be listed. Is this possible? I cannot manipulate the order of the original items (ie, filters) because this data is being used to derive other formulas.

This is probably an easy question for most of you, but it's killing me. I tried searching before I posted this, but the suggestions given didn't seem to work for me.

I need to look up data from a cell on one Excel sheet, compare it to a list on a 2nd sheet and when they equal, take a value from a different column on the 2nd sheet and drop it back on the 1st sheet. Since that's a horrible explanation, let me try explaining it this way:

Sheet 1
Column A has a long list of code type 1s
Column E has a long list of code type 2s

Sheet 2
Cell C2 has code 1
Cell E2 needs code 2

I know it should take an index/match function, but nothing I try is working. What I'm trying is the following formula in Cell E2 of sheet 2:

=INDEX('Sheet 1'!A:A,MATCH(C2,'Sheet 1"!E:E,0),5)

But all I get is no result. What's driving me bonkers is that if I copy everything over to a single sheet, that formula works fine.

I have the code which filters my spreadsheet and copies that dataset but I think I need to add an IF that skips the copy line when the criteria is not met. Any ideas?

Thanks all!!

I want to Sum Column "H" starting form "H2" all the way down (rows may vary)
Then Paste My answer in "AM1"
This is what I have so far and for some reason is not working.

myRange = ActiveSheet.Range("H2", Range("H2").End(xlDown))
Range("AM1") = WorksheetFunction.Sum(myRange)

Any Ideas?

I'm comparing 12 cells on different sheets (in the same workbook) and need to determine if they are all an exact match to one another. Basically, I want something like exact(), but I need to compare more than two strings. Any ideas?



I have three columns containing last name values from 3 different sources that I've brought into one sheet. I am trying to find a way to compare all three values to establish if they are the same.

Of the three values there is no master, Each value may be different. So essentially it would be like doing =IF(a1=a2=a3,"match", "nomatch")
But of course this isn't possible.

I don't care about obtaining detail about which value matches which. I just need true or false response as to whether all three values are the same or not.

Thanks for any help anyone can provide.


I have cells in a column, some colored yellow, some not. I am trying to use
the SUMIF function to sum only the cells in the range that are colored. Can
this be done? Can I enter something in the "criteria" part of the formula
that can do this?


I also tried to use the CELL function's color feature, but I couldn't get it
to work right. I don't know how to get Excel to recognize if a cell is
colored in a formula.

It might just be that I don't know what this means in Help:

"color" --> 1 if the cell is formatted in color for negative values;
otherwise returns 0 (zero).

Can anyone help?

Hi all,

The following code is placed in workbook 'A' and is used to open workbook 'B'. These workbooks will now always be housed in the same directory and i want to change the code to use a relative path reference by determining the path of workbook 'A'. here's what I had:

Sub income_statement()

Application.WindowState = xlMaximized
Application.Workbooks.Open "C:\Documents and Settings\.....\workbook B.xls", UpdateLinks:=xlUpdateLinksAlways

End Sub

could you suggest how to change this to use a relative path reference?

I have set a VLOOKUP formula to match account numbers. How ever I have to
click double click on the cell before the formula recognises the account
number. I have to do this for each cell. I have tried different formats. It
is not saving me that much time.

Is it possible to apply a filter to multiple sheets within the same Excel workbook, using the same filter criteria?

For example, suppose you have tables of data on 3 different tabs, all having the same headings. Suppose one of the headings is "gender". If you apply a filter to the table on Sheet 1, to only show the rows containing the word "female", is it possible to have the tables on Sheets 2 and 3 automatically update to only show the "female" rows? Or would you have to manually update the filter criteria in Sheets 2 and 3?

I hope this makes sense. Thank you in advance for any help.

I am puzzled by a thin black line (that looks like a border line) on a spreadsheet that I am unable to remove, whatever I do. It starts halfway across column B and stops just at the end of column Z.
It is not a border line.
It is not a page break.
If I delete the rows it appears on it remains visible.
It is not an object floating on top of the spreadsheet.
Any ideas?

Hello, I am pretty new to excel programming/messing around so I'll refer to those who are much wiser than I am. I am trying to set up a form for work, in this form I want to have a page with a bunch of cells pre-sized. What I want to do is when I insert a picture from a job site, that when this picture gets inserted, it will automatically resize to fit within the cell. I don't have time to manually resize dozens of pictures and if I could get this to work it would be awesome! I tried to search for an answer using the search function, but I kept getting a fatal error about allowable memory? Thanks in advance for you help!

I am trying to insert a range of cell in the body of an outlook email with the same format. The code I am using now is below and it does insert anything in the email body.


Sub Mail()
Dim OutApp As Object
 Dim OutMail As Object
 Set OutApp = CreateObject("Outlook.Application")
 Set OutMail = OutApp.CreateItem(0)
 On Error Resume Next
 With OutMail
 .To = ""
 .CC = ""
 .BCC = ""
 .Subject = "Burden Report"
 .Body = ActiveSheet.Range("A1:D12")
 .Attachments.Add ("C:\Documents and Settings\cbelcher\Desktop\Burden Report.xls")
End With
 On Error GoTo 0
 Set OutMail = Nothing
 Set OutApp = Nothing
 Set objMsg = Nothing
End Sub

I'm trying to use VBA to go to a website that requires a User Name, Password, and a Submit Button.

So far I can get everything to work besides the Submit part. The code runs without errors, but doesn't actually "hit" the submit button on the webpage.

For posting, I removed my actual user name and password and and used the generic " User Name " and " Password " highlighted in blue.

I highlighted another section in green that I took from a previous post hoping it would solve my problem. The link is: /

Here is the code I am using:

Sub GoToWebSiteAndPlayAroundNew()

Dim appIE As Object ' InternetExplorer.Application
Dim URL As String

Set appIE = CreateObject("InternetExplorer.Application")
URL = " / "

With appIE
.navigate URL
.Visible = True

Do While .busy: DoEvents: Loop
Do While .ReadyState 4: DoEvents: Loop

.document.getelementbyid("fUserName").Value = " UserName "
.document.getelementbyid("fPassword").Value = " Password "

End With

On Error Resume Next
x = 0
For Each mitem In IE.document.all
mitem.Value = "x"
x = x + 1

x = 0
For Each mitem In IE.document.all
If x = "Submit" Then
Exit For
End If


End Sub

I am trying to sum all numbers <0 using the SUMIF formula in Excel 2003.

FORMULA: =sumif(range,criteria,sum_range)

I got it to work, but I have cell ranges to total that are not next to each
other (such as A5:A15 and C5:C15).
When selecting the ranges for the formula, Excel writes them A5:A15,C5:C15

because of the comma (,) between the cell ranges Excel is reading the A5:A15
as the range and C5:C15 as the critera. How can I get this formula to allow
me to select multiple cell ranges?

All help is appreciated.

Thank you.

Hello All, I have a column where cells need to be 50 characters long, it contains addresses, however, since all the addresses do not meat the criteria, I need to add (blank spaces) to reach the 50 characters, any idea on how to approach this?


Fire Street #50 this cell contains 17 characters therefore I need to add the rest by adding blank spaces to reach 50 characters, otherwise the system I am exporting the data will not understand this cell

I have a graph with various information in it. One is a line graph that tracks hours used in that department per month. The problem is that when it gets to the last month, and there is not yet data for future months, the line goes down to Zero (leavin this big diagonal line that makes the data look funny). I need this line to stop on the last month there is data for. (I do not manually enter the data, it is a formula that I do not wish to delete.) I know I can manually move the data that the line is pulling to make it stop on the last month, but I have a graph for 36 different departments and that's a pain to have to manually adjust 36 graphs each month. Is there a way to tell the line to stop if there is no data? Thanks!!

I have a userform containing a multicolumn listbox (ListBox1) and textbox (txtSelectedJobNumber).

When a user clicks on a line in the listbox I want to automatically copy the text in the 3rd column of the selected line to the textbox.

If anyone could provide code which would allow me to do this I would be grateful




i've got the following problem:

I want users to double-click on a row on a protected sheet and then do some code based on the row-number of the clicked cell. I've protected the sheet because it contains a lot of formula's.

When a user double-clicks a row it triggers the code through the Workbook_SheetBeforeDoubleClick event.
After the code is executed Excel shows a message that the cell that was clicked was protected etc etc.

How can I prevent this message from popping up?

I've already tried

application.displaywarnings = false

but that didn't work


Hi there,

I am currently using 'Activecell.Offset(1,0).Select' to move down one cell at a time when I click on a button.

The problem I have now is that if someone was to filter by something then the 'next cell down' could be hidden behind the filter (by that I mean it didn't meet the filter criteria).

Is there anyway to move down to the next row, even if that row does not follow on Sequentially .

Any help would be greatly appreciated.



Hi there,

I have a piece of code called ConvertDates that formats data contained on 6 worksheets. The 6 data sheets all contain a data connection to a website of foreign exchange tables.

What I want is for my code to execute as soon as the data connection refresh has finished.

When I use the statement


Application.Run "Project1.xlsm!ConvertDates"

The code executes the macro whilst the refresh is still happening, thereby screwing up my results. I don't really want to use a timed wait, because the refresh speed is going to vary from user to user.

Is there some way I can tell excel to wait till the refresh has finished and then execute the code?

Any help would be hugely appreciated.

Morning all,

Say I had a line graph for 4 years and I wanted it to be a solid line for the first three and a dashed line for the last one, is that possible?

Many thanks for your help

Hello all,

Until now I have been able to find all my answers through searches. As a VBA novice, it has been very helpful. I am stumped on this one, however. I am trying to autofill from the selected cell in Column C down. I would like it to stop at the last cell with data in Column B. This is the code I have so far:

Selection.AutoFill Destination:=Range(Selection, Selection.End(xlDown))

This does the autofill, but doesn't stop at the last cell with data in Column B.

In the past I have use this code to acheive similar results:

Dim endRow As Long
endRow = Cells(Rows.Count, "B").End(xlUp).Row
Range("C2").AutoFill Destination:=Range("C2:C" & endRow)

The problem with this code is that I will not always be starting in "C2". I need code that uses whatever the selected cell is.

All help is appreciated. Thanks!

Below is the code I am using. I am trying to change the subject to show the value of a cell.


 With OutMail
 .To = ""
 .CC = ""
 .BCC = ""
 .Subject = "Attrition for" & Range("c5")
 .Body = ""
 .Attachments.Add wb2.FullName

When it sends it does not show the name in c5.
It just reads "Attrition for"

Should there be a different code?

Hi All,

I got the below macro which uses IE and open the URLs. I want to create a userform with listbox with radio button and commandbutton on the same which will help me to connect to each url when I select the same in listbox and click on the commandbutton.

Sub DoBrowse1()
 Dim ie As Object
 Set ie = CreateObject("Internetexplorer.Application")
 ie.Visible = True
 ie.Navigate ""
End Sub

Any suggestions..

Related pages

counting duplicate values in excel15 minute increment schedule templateexcel transpose datadial graphword vba checkboxconvert range to table excelopen quickbooks file in excelacroexch errorexcel pipe delimitedvlookup different workbookhistogram input range contains non numeric dataexcel convert horizontal to verticalfreeze cells in excel 2007how to lock a cell in a formulatracking inventory in excellbs to stone conversionunprotect excel sheet without password 2007excel vba end xlupexcel vlookup with multiple criteriastaff holiday entitlement calculatoradding and subtracting dates in excellawyer timesheet templateexcel alternate row colorsmilitary time minutes and hours chartvba instrhow to unhide everything in excelhow to draw a normal distribution curve in wordsquared symbol worddynamic graph in excelexcel fuzzy matchnumbering excel rowsvba code for login formadvanced filtering in excel 2007string compare vbavba break statementhow to calculate golf pointshow to create a command button in excelsample payroll sheet excelsedol lookup freeexcel vba global variablespivot table data source reference is not validunhide all rows in excel 2010excel generate random passwordshortcut subscript excelmultiply percentages in exceldbf to csvclearcontents vbakilowatt hour formulavba excel format cellhow to filter blank cells in excelexcel sort remove duplicatesconvert hours and minutes to decimal in excelconfidence interval excel graphcalculating slope in excelexcel automatic row heightadd horizontal line to excel chartturn off scroll lock excelexcel 2007 tools menu missingapplication.worksheetfunction.countifusing vlookup to compare two listsloop until vbavb rndunhide a row in exceldisplay two excel sheets on different monitorshow to convert yyyymmdd to date in excelhow to fix a header in excelmonthly compound interest calculator excelhow to put names in alphabetical order in excelamount convert in words in excelhow to use linest in excelexcel 2010 compare two columnsvba renamebatch convert xls to xlsxcompile error in hidden module word 2007brio query downloadselfcert.exewww aastocks