The built-in VLOOKUP function in Excel can find and return values only. However, it is not possible to copy comments along with values using this function. Using a user-defined function (UDF) can be a way of doing this. Follow the article to learn how to do that.
Steps to Copy Comments in Excel Using User-Defined Vlookup Function
Assume you want to look up a value along with the comments (if any) in the range B5:C9. The lookup value is given in cell E5. Now you want to use a VLOOKUP formula to return a value associated with the lookup value along with comments if it contains any. But as we have said, the VLOOKUP function is not fit for this job, i.e. copying the comments. So, we will create a UDF that works with the same mechanism as the VLOOKUP function.
Follow the steps below to be able to do that.
📌 Step 1: Open a New Module to Insert VBA Code
- First, press ALT+F11 to open the VBA window. Then select Insert >> New Module to create a new module as shown in the following picture.
📌 Step 2: Write VBA Code to Create UDF
- After that, copy the following code using the copy button.
Function VLOOKUPCMT(lookup_value As Variant, table_array As Range, col_index_num As Long, range_lookup As Long) As Variant Application.Volatile Dim xReturn As Variant Dim yCell As Range xReturn = Application.Match(lookup_value, table_array.Columns(1), range_lookup) If IsError(xReturn) Then VLOOKUPCMT = "Not Found" Else Set yCell = table_array.Columns(col_index_num).Cells(1)(xReturn) VLOOKUPCMT = yCell.Value With Application.Caller If Not .Comment Is Nothing Then .Comment.Delete End If If Not yCell.Comment Is Nothing Then .AddComment yCell.Comment.Text End If End With End If End Function
- Next, paste the copied code onto the blank module as shown in the picture below.
📌 Step 3: Apply the User-Defined Function to Copy Comments
- Now, enter the lookup value (3) in cell E5.
- Finally, enter the following formula in cell F5. After that, you will get the desired result as follows. Here, the VLOOKUPCMT function works the same as the VLOOKUP function.
VBA Code Explanation:
- Function VLOOKUPCMT(lookup_value As Variant, table_array As Range, col_index_num As Long, range_lookup As Long) As Variant
Here, the VLOOKUPCMT function will be the alternative to the VLOOKUP function in Excel. It has the same arguments as the VLOOKUP function.
Forces a recalculation whenever a calculation occurs in any other cells.
- Dim xReturn As Variant
Dim yCell As Range
Declaring necessary variables.
- xReturn = Application.Match(lookup_value, table_array.Columns(1), range_lookup)
Assigning values to the xReturn variable.
- If IsError(xReturn) Then
VLOOKUPCMT = “Not Found”
Returns Not Found in case of errors.
- Set yCell = table_array.Columns(col_index_num).Cells(1)(xReturn)
Assigns a cell reference to the yCell variable.
- VLOOKUPCMT = yCell.Value
The VLOOKUPCMT function returns the value of the cell referenced by the yCell variable.
- With Application.Caller
If Not .Comment Is Nothing Then
Delete any existing comments from the formula cell.
- If Not yCell.Comment Is Nothing Then
Copy the comment from the cell referenced by the yCell variable to the cell containing the formula.
Read More: How to Copy Comments in Excel
Things to Remember
You may need to recalculate every time you lookup for a new value. Otherwise, you may get erroneous results.
Download Practice Workbook
You can download the practice workbook from the download button below.
Now you know how to copy comments in Excel using the VLOOKUP formula. Hopefully, this has solved your problem. Use the comment section below for further queries or suggestions. Stay with us and keep learning.