![]() |
Determining the Cell Address of a VLOOKUP Result in VBA
I'm currently implementing a user form that is meant to add new rows
or update existing rows on a worksheet. I'm currently using a VLookup to determine if the item I want to add already exists on the worksheet, and if it does, I'm loading the row information with additional VLookups. The problem is, I need to be able to get back to this source row in order to update it with any changes made to the data in the user form. Does anyone have any suggestions as to how I might be able to determine the row number or address of the cell that is identified by the vlookup function? (I have enumerated constants defined to handle my columns). I should probably point out that I need to do this all in VBA. I realize that I could store the address in a cell in the row and load it into a variable when I load the rest of the rows data, but I'd prefer to only store relevant data in the row and handle this programmatically. Thanks in advance for any help. JR |
Answer: Determining the Cell Address of a VLOOKUP Result in VBA
To determine the cell address of a VLOOKUP result in VBA, you can use the MATCH function in combination with the VLOOKUP function.
Here's an example code snippet that demonstrates how to do this: Formula:
|
Determining the Cell Address of a VLOOKUP Result in VBA
Instead of VLOOKUP, use MATCH to find the (relative) row and assign this to a
variable. Then use the variable in INDEX to retrieve the other data as well as to update the data if necessary. Hope this helps. Pete " wrote: I'm currently implementing a user form that is meant to add new rows or update existing rows on a worksheet. I'm currently using a VLookup to determine if the item I want to add already exists on the worksheet, and if it does, I'm loading the row information with additional VLookups. The problem is, I need to be able to get back to this source row in order to update it with any changes made to the data in the user form. Does anyone have any suggestions as to how I might be able to determine the row number or address of the cell that is identified by the vlookup function? (I have enumerated constants defined to handle my columns). I should probably point out that I need to do this all in VBA. I realize that I could store the address in a cell in the row and load it into a variable when I load the rest of the rows data, but I'd prefer to only store relevant data in the row and handle this programmatically. Thanks in advance for any help. JR |
Determining the Cell Address of a VLOOKUP Result in VBA
=ADDRESS(MATCH(G4,A1:A10),1) works as a formula. The code is
Sub GetAddr() Dim addr As String, rng As Range Dim crit, X Set crit = Range("g4") Set rng = Range("A1:a10") X = Application.Match(crit, rng, 0) addr = Cells(X, 1).Address MsgBox addr End Sub Regards Peter " wrote: I'm currently implementing a user form that is meant to add new rows or update existing rows on a worksheet. I'm currently using a VLookup to determine if the item I want to add already exists on the worksheet, and if it does, I'm loading the row information with additional VLookups. The problem is, I need to be able to get back to this source row in order to update it with any changes made to the data in the user form. Does anyone have any suggestions as to how I might be able to determine the row number or address of the cell that is identified by the vlookup function? (I have enumerated constants defined to handle my columns). I should probably point out that I need to do this all in VBA. I realize that I could store the address in a cell in the row and load it into a variable when I load the rest of the rows data, but I'd prefer to only store relevant data in the row and handle this programmatically. Thanks in advance for any help. JR |
All times are GMT +1. The time now is 06:54 PM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com