How to Use VBA Macros to Copy Data to Another Workbook

Bottom Line: Learn how to use VBA macros to copy & paste data from one Excel workbook to another, including adding data to the bottom of an existing range or replacing data.

Skill Level: Intermediate

Video Tutorial

Watch on YouTube & Subscribe to our Channel

Download the Excel Files

Follow along with the video above using the same Excel files that I use. You can download them by clicking below. Here's the workbook that I copy data from in my example:

And here's the workbook that I copy data to.  This is the one that has all the macro code in it:

Copy Data from One Workbook to Another Using Excel Macros

There are a few ways to copy & paste data with VBA. We are first going to use the Range.Copy method. This allows us to perform the entire action in one line of code.

  Workbooks("New Data.xlsx").Worksheets("Export").Range("A2:D9").Copy _
    Workbooks("Reports.xlsm").Worksheets("Data").Range("A2")

The Range.Copy method has an optional Destination parameter that allows us to specify the range we want to paste to.

We reference the source workbook, worksheet, and range that we want to copy from. For the Destination parameter we reference the destination workbook, worksheet, and the beginning cell of the range to paste to.

Copy Data to Another Workbook Using Macros

The Range.Copy method does a regular copy and paste that includes formatting and formulas. If you just want to paste values, there is an example below.

Important Points to Remember

When using this macro to copy data from one workbook to another, keep these points in mind.

  • You must reference the correct file extension in the Workbooks property (see video above for details).
  • Workbooks do not have to be macro enabled for this to work.
  • This code can be stored in a separate workbook, such as your Personal Macro Workbook, if you choose. (Learn how to create a Personal Macro Workbook here.)
  • You do not need to select or activate the workbooks, worksheets, or even ranges first. This is because the code already specifies those details.
  • Both workbooks must be open when using this code. But the process of opening and closing workbooks can be automated with more code:
Sub OpenWorkbook()
'Open a workbook

  'Open method requires full file path to be referenced.
  Workbooks.Open "C:\Users\username\Documents\New Data.xlsx"
  
  'Open method has additional parameters
  'Workbooks.Open(FileName, UpdateLinks, ReadOnly, Format, Password, WriteResPassword, IgnoreReadOnlyRecommended, Origin, Delimiter, Editable, Notify, Converter, AddToMru, Local, CorruptLoad)
  'Help page: https://docs.microsoft.com/en-us/office/vba/api/excel.workbooks.open

End Sub


Sub CloseWorkbook()
'Close a workbook

  Workbooks("New Data.xlsx").Close SaveChanges:=True
  
  'Close method has additional parameters
  'Workbooks.Close(SaveChanges, Filename, RouteWorkbook)
  'Help page: https://docs.microsoft.com/en-us/office/vba/api/excel.workbook.close
  
End Sub

PasteSpecial Method to Paste Values, Formats, etc.

When pasting data into the destination workbook using VBA, you can also use any of the normal Paste Special features.

There is an example macro below. You'll notice that my example uses the PasteValues type, but you could also use PasteFormulas, PasteFormats, or any of the other PasteSpecial options available. Here is a list of the PasteTypes.

  'Copy range to clipboard
  Workbooks("New Data.xlsx").Worksheets("Export").Range("A2:D9").Copy
  
  'PasteSpecial to paste values, formulas, formats, etc.
  Workbooks("Reports.xlsm").Worksheets("Data").Range("A2").PasteSpecial Paste:=xlPasteValues
  

To learn more about PasteSpecial options, check out my video series on Copy and Paste with VBA.

Pasting Below the Last Cell

Sometimes the size of your data ranges in the source and destination files will change every time you run the macro. For example, you may have a daily task of adding new entries from an exported sheet to a master list in another workbook.

Copy Data to Another Workbook below existing entries

In that case, you'll want to add the new entries directly below the last entry on your destination sheet. To do that, you can use the following macro.

Sub Copy_Paste_Below_Last_Cell()
'Find the last used row in both sheets and copy and paste data below existing data.

Dim wsCopy As Worksheet
Dim wsDest As Worksheet
Dim lCopyLastRow As Long
Dim lDestLastRow As Long

  'Set variables for copy and destination sheets
  Set wsCopy = Workbooks("New Data.xlsx").Worksheets("Export 2")
  Set wsDest = Workbooks("Reports.xlsm").Worksheets("All Data")
    
  '1. Find last used row in the copy range based on data in column A
  lCopyLastRow = wsCopy.Cells(wsCopy.Rows.Count, "A").End(xlUp).Row
    
  '2. Find first blank row in the destination range based on data in column A
  'Offset property moves down 1 row
  lDestLastRow = wsDest.Cells(wsDest.Rows.Count, "A").End(xlUp).Offset(1).Row

  '3. Copy & Paste Data
  wsCopy.Range("A2:D" & lCopyLastRow).Copy _
    wsDest.Range("A" & lDestLastRow)

This code pastes your source data just below the existing destination sheet data.

In addition to finding the last row in a range or sheet, you can find the last column or cell as well. Checkout my post and video on 3 ways to find the last used row or column to learn more.

Clearing the Destination Range Before Pasting

Instead of adding to a list in your destination range, you may prefer to clear the existing range before pasting the new data. You can do that with this macro.

Sub Clear_Existing_Data_Before_Paste()

Dim wsCopy As Worksheet
Dim wsDest As Worksheet
Dim lCopyLastRow As Long
Dim lDestLastRow As Long

  Set wsCopy = Workbooks("New Data.xlsx").Worksheets("Export 2")
  Set wsDest = Workbooks("Reports.xlsm").Worksheets("All Data")
    
    '1. Find last used row in the copy range based on data in column A
    lCopyLastRow = wsCopy.Cells(wsCopy.Rows.Count, "A").End(xlUp).Row
      
    '2. Find first blank row in the destination range based on data in column A
    'Offset property moves down 1 row
    lDestLastRow = wsDest.Cells(wsDest.Rows.Count, "A").End(xlUp).Offset(1).Row
    
    '3. Clear contents of existing data range
    wsDest.Range("A2:D" & lDestLastRow).ClearContents

    '4. Copy & Paste Data
    wsCopy.Range("A2:D" & lCopyLastRow).Copy _
      wsDest.Range("A2")

End Sub

Running that macro will remove any existing data in the destination range before inserting the data from the source worksheet.

Alternative Code for Copying Data to Your Current Workbook

I wanted to also present to you a slightly different option for your macro. Instead of identifying the destination workbook by name, you can use the ThisWorkbook property. This can be done as long as the macro is stored in the destination (or source) workbook.

By doing this, you avoid having to change the code in the event you change the file name for your destination workbook. Here is the VBA code that uses ThisWorkbook.

  Workbooks("New Data.xlsx").Worksheets("Export").Range("A2:D9").Copy _
    ThisWorkbook.Worksheets("Data").Range("A2")

This reminds me that VBA will always assume that the macro you want to run applies to the active workbook if you don't specify a workbook in each line of code. I talk about that critical assumption and other important points about running VBA code in this video on VBA Assumptions.

Copy Paste Between Sheets in Same Workbook

You can modify any of the examples above to copy & paste between sheets in the same workbook. Just use the same workbook reference for the copy and destination ranges. Here is an example.

  'Copy range to clipboard
  Workbooks("New Data.xlsx").Worksheets("Export").Range("A2:D9").Copy
  
  'PasteSpecial to paste values, formulas, formats, etc.
  Workbooks("New Data.xlsm").Worksheets("Data").Range("A2").PasteSpecial Paste:=xlPasteValues
  

You won't always need to specify the workbook, but it is a good habit to get into. Otherwise, VBA makes assumptions that can get you in trouble.

Conclusion

I hope these tips and macros help save you time when copying data between workbooks. Automating this boring task will help prevent errors and make it easy for others to update your reports.

Please leave a comment below with any questions or suggestions. Thank you! 🙂

211 comments

Your email address will not be published. Required fields are marked *

  • Hi Jon,

    Thank you very much for the information shared here!

    High quality material!

    It was of great help!

    Cheers
    Leandro

  • Dear sir,
    I need to export data from one workbook to another using criteria….Off course, your above codes are beneficial but my requirement is quite different than that. so will you help me.

    • Hi Pravin,

      I find that passing the criteria for the search parameter from worksheet “a” to worksheet “b”, then searching in worksheet “b” can be helpful. Activate the cell, then reference row, column either R1C1 or “A1” from this relative position. Copy required data into array, switch back to worksheet “a” and copy from array.

  • hello sir,
    good day to you.
    material of great help.
    i wanted to ask that i have two different workbooks of different name. In my first workbook there is data namely with header Passport No. , Id no. and arrival date. Now i want to copy data from first workbook to another which has numerous headers and data. but i have filtered it. i want to copy the missing arrival date and id numbers from the first workbook to second . How do i do that? manually i have to search one by one using passport number and then copy and paste . But how do i do it using VBA? also i have filtered the passport numbers that are missing data. Please help.

  • Hi! Thank you so much for this. It really helped me along. My problem is that I need to create new worksheets by Country then copy and paste the specific country rows of data values to individual workbooks. The workbook names would be something like “Payment Template Q419 India.xlsx” and there could be up to 40 worksheets created during that quarter. Is there a way to create a new workbook with a variable name that uses the Country name found in a specific column?

  • looking for a macro to copy a graph from one workbook and worksheet to another workbook and worksheet while keeping the source formatting. Not able to get anything to work. Something to start from would be great. Tried recording macro and not much luck there either.

  • Is there a VBA code to copy multiple cells data from one workbook to paste into one cell in antoher workbook?
    For example, I am trying to do the following.
    Workbooks(“753 xlsm”).Worksheets(“Saturday”).Range(“A18, A21, A23”).Copy Workbooks(“Weekly “).Worksheets(“Explanations”).Range(“C23”)
    I am basically trying to copy multple comments from one workbook into another workbook on a single line/Cell.

  • I have a reservations spreadsheet that I need to transfer data to to another sheet if a cell is not empty using an ActiveX button called TransferNoShows.

    I need the following to happen when I press the button:

    In Spreadsheet 1 If a cell in I3-I39 is not empty Transfer (append) Data in Cells D, E, F, and G in that row to Columns B, C, D, and E respectively in Spreadsheet 2 then place today’s date in column A of spreadsheet 2. Then Delete the data in Spreadsheet 1 Column I ONLY.

    In Spreadsheet 1 If a cell in S3-S39 is not empty Transfer (append) Data in Cells N, O, P, and Q in that row to Columns B, C, D, and E respectively in Spreadsheet 2 then place today’s date in column A of spreadsheet 2.Then Delete the data in Spreadsheet 1 Column S ONLY.

    Thank you in advance!

  • Thank you for the VBA macro. It worked. Now how can I adjust so that it can copy values from multiple worksheets to a single worksheet from the same Excel file

  • Dim lastRow1 As Long, erow1 As Long
    lastRow1 = Worksheets(“WO_SendM”).Cells(Rows.Count, 1).End(xlUp).Row
    For i = 3 To lastRow1

    If Worksheets(“WO_SendM”).Cells(i, 9).Value = Me.Label164.Caption Then
    Worksheets(“WO_SendM”).Cells(i, 4).Copy
    Worksheets(“WO_SendM”).Cells(i, 5).Copy

    erow1 = Worksheets(“WO_Ledger”).Cells(Rows.Count, 18).End(xlUp).Row
    Worksheets(“WO_SendM”).Paste Destination:=Worksheets(“WO_Ledger”).Cells(erow1 + 1, 18)
    End If
    Next i

    Is it possible to get two cell value 4 and 5 in another cell?

  • The Explanation is so helpful. Thank you a lot.
    I have one question though. Instead of clearing the data, how can I write a code that would check the presence of the same data by using unique values e.g date and product (in the current case) and alert the user with a msg “Records with similar identifiers are available in the database”?

  • Hi
    enjoyed how you have simplified your process.
    can you help me identify the mistake here. I am very new in VBA writing. email is

    Private Sub unpaidInvoices()

    Dim i, LastRow
    LastRow = Sheets(“Booking”).Range(“C111” & Rows.Count).End(xlUp).Row

    Sheets(“unpaidInvoices”).Range(“A2:2000”).ClearContents

    For i = 2 To LastRow

    ‘E contains the data to transfer
    If Sheets(“Booking”).Cells(i, “O”).Value = “No” Then

    Sheets(“Booking”).Cells(i, “O”).Copy
    Destination:=Sheets(“unpaidInvoices”).Range(“O” & Rows.Count).End(xlUp).Offset(1)

    End If
    Next i
    End Sub

  • I’m trying to paste into another workbook as a value and enter it

    wsDest.Range(“A” & lDestLastRow).PasteSpecial Paste:=xlPasteValues

    but keep getting “Expected: End of statement”.

    Please could someone help?

  • Hi Jon,
    thanks for this tutorial, it saved me a lot of time and effort, however, i need to integrate a find function (location of a cell containing specific text) in the source sheet to define the copy range.
    can you please help me with that?

  • please i enjoyed your videos. my name is Henry an active military guy. i have many forms that i am printing with peoples information i am able to sent the forms to print with those information but the problem is that i have to filter the name one after the other to print each form. i search for names from a list of names i have in excel run it one at a time. i am trying to see if you can help me with a macro that can go through the list one at a time and past the name for me in my pivot table run it and sent it to print.
    right now i can only past manually and use the macro and print it but i can not get the macro to get the data from another list and past on my pivot filter to run and print

  • Excellente! But…
    Can you help me create a macro that copies values ​​to a tab based on date? Example: In a record sheet we have values ​​from January to December by date. Depending on the registration date, the macro should copy January values ​​to January tab, February values ​​to February tab, etc.Thanks

  • Good day …

    EXCELLENT!! thnX

    I need help defining the path between two workbooks that are hosted on OneDrive (365). I can save info between two workbooks on my desktop (local drive) but cannot seem to get the link when i upload the file to OneDrive

    Any help appreciated

    Regards

    Hoosen

  • How do you change the code to copy multiple files from one folder to a main file automatically? So every time a new file is uploaded to the folder it gets copied over to the main folder when you open and run the macro? Thanks

  • ‘4. Copy & Paste Data
    wsCopy.Range(“A2:D” & lCopyLastRow).Copy _
    wsDest.Range(“A2”)

    On the section of this what extra code is needed for paste special with value and format only instead of paste all.

  • Hi, I need to copy just one specific cell from the new data sheet, and copy and paste the value into the last row of a specific column on the last day of each month. So copy D7 (on the last day of each month), paste the value below the existing value from the previous month in a specific column (ex: Column D).

    I was able to copy the specific cell in the form of the value, but then I have issues with pasting in the column below the existing data. With the below VBA it will continually paste the cell value from D7 into the same cell on the reports tab. But I need the data from the new data sheet to paste it into the cell below the existing data in the Reports sheet.

    Sub Copy_Paste_Below_Last_Cell()
    ‘Find the last used row in both sheets and copy and paste data below existing data.

    Dim wsCopy As Worksheet
    Dim wsDest As Worksheet
    Dim lCopyLastRow As Long
    Dim lDestLastRow As Long

    ‘Set variables for copy and destination sheets
    Set wsCopy = Workbooks(“New-Data.xlsx”).Worksheets(“Export 2”)
    Set wsDest = Workbooks(“Reports.xlsm”).Worksheets(“All Data”)

    ‘1. Find last used row in the copy range based on data in column A
    lCopyLastRow = wsCopy.Cells(wsCopy.Rows.Count, “A”).End(xlUp).Row

    ‘2. Find first blank row in the destination range based on data in column A
    ‘Offset property moves down 1 row
    lDestLastRow = wsDest.Cells(wsDest.Rows.Count, “A”).End(xlUp).Offset(1).Row

    ‘3. Copy & Paste Data
    wsCopy.Range(“D7:D” & lCopyLastRow).Copy
    wsDest.Range(“D” & lDestLastRow).PasteSpecial xlPasteValues

    ‘Optional – Select the destination sheet
    wsDest.Activate

    End Sub

  • I love the details in the video. The only thing that I am struggling with is that the range varies in number of rows down a column. A2 is known but B ending is unknown and varies since the data is being pulled from a report that I run. How would I change that from the example shown in the video?
    currently I am using this formula
    Workbooks(“Raw Bulk Upload report.xlsx”).Worksheets(“ETPP Bulk Upload”).Range(“f4:H” & lCopyLastRow).Copy _
    Workbooks(“ETPP Bulk Upload List.xlsm”).Worksheets(“TCExport”).Range(“B2”)

  • Hello, I am Using the VBA wich you describe in your video for Copy and paste from one workbook to another. This works for 99% for me but i got one issue with it. This issue is that my workbook that has the data i need to Copy, the name change every week by weeknumber. Is there any possibility to change the filename every week?

    So I use the VBA like below. The first job is also variable and that works correct, since the weeknumber changes in the cell where it references to:

    Workbooks.Open Sheets(“Startpagina”).Range(“AD18”)

    The second one is about to set WsCopy as Workbooks. The name changes every week from 201946 to 201947 where the 46 and 47 is the weeknumber. Is there any possibility to refer also to a Cell in the workboon where the VBA is written? I tried different ways to refer to a cell but that gave me an error.

    Set wsCopy = Workbooks(“Productiviteit HSC AL 201946.xlsx”).Worksheets(“PickenGr1”)

    Sub Copy_Paste_Below_Last_Cell()
    ‘Find the last used row in both sheets and copy and paste data below existing data.

    Workbooks.Open Sheets(“Startpagina”).Range(“AD18”)

    Dim wsCopy As Worksheet
    Dim wsDest As Worksheet
    Dim lCopyLastRow As Long
    Dim lDestLastRow As Long

    ‘Set variables for copy and destination sheets
    Set wsCopy = Workbooks(“Productiviteit HSC AL 201946.xlsx”).Worksheets(“PickenGr1”)
    Set wsDest = Workbooks(“Productiviteit Amsterdam.xlsm”).Worksheets(“Input PHB”)

    ‘1. Find last used row in the copy range based on data in column A
    lCopyLastRow = wsCopy.Cells(wsCopy.Rows.Count, “A”).End(xlUp).Row

    ‘2. Find first blank row in the destination range based on data in column A
    ‘Offset property moves down 1 row
    lDestLastRow = wsDest.Cells(wsDest.Rows.Count, “B”).End(xlUp).Offset(1).Row

    ‘3. Copy & Paste Data
    wsCopy.Range(“A20:AK” & lCopyLastRow).Copy _
    wsDest.Range(“C” & lDestLastRow)

    ‘4. Week nummer kopieren en plakken
    Workbooks(“Productiviteit Amsterdam.xlsm”).Worksheets(“Startpagina”).Range(“AD16”).Copy
    wsDest.Range(“B” & lDestLastRow, “B” & lCopyLastRow + lDestLastRow).PasteSpecial Paste:=xlPasteValues

    ‘Optional – Select the destination sheet
    wsDest.Activate

    End Sub

  • I want to do auto update same cells in multiple sheets from one workbook to another . Which code is suitable for this ?

  • Hello,

    Copying data from one work book to another is working fine for me.

    But the issue is i have more than two workbooks with different tabs and with the same tab names and one master workbook with same tab names and now i need to copy data from the two or more workbooks to one master workbook.

    Please let me know if you have any example for this kind of situation.

    Thanks

  • Dear Jon,

    I have to export data from word document to excel, i need your help how to set up macro in order run each time data should update automatically.

  • Hi,
    I would like to copy a row from a file and paste it as the first row on another file. I can’t seem to adapt the code of this video to do so.
    Can you help? Thanks
    Cam

  • Can I ask: is it possible to combine two of your codes? I want to copy only visible cells starting at column DC and ending in column EI from the source sheet in 1 workbook to a sheet in another workbook starting at cell a3.

    Kindest regards

    Gerald

  • Hi, I find your videos and code very helpful. Would appreciate if you can help me with the code for my requirement i.e. I have new .csv source file everyday which is saved in folder received in everyday email. And i need to copy data from recently saved source worksheet to below of already existing data in destination worksheet. Thanks in advance

  • I have found this copy paste last row from one workbook to another workbook working good for me, but one issue I got is I am copying from cell with formula to value, so I modify code to below based your training material. but it didn’t work, so how I can modify code to copy from cell with formula to value?

    wsCopy.Range(“A76:G” & lCopyLastRow).copy _
    wsDest.Range(“A” & lDestLastRow).PasteSpecial Paste:=xlPasteValues

  • This code is great – thank you! Is there a way to make this work if the source file is already open as well or something that prompts the user to close the source spreadsheet if they have it open? I added this to a file that is used among multiple users in my team – right now, if the source spreadsheet is open the macro stops and the debug dialogue box opens…

  • Hi, I need to copy and paste the data based on the column header from the source worksheet to the destination worksheet.
    Can you please help me with the code?

  • Hi. Is it normal that “Queries and Connections” from the source file to be copied to the destination file?

  • Getting Variable not defined in destination workbook when trying to do a copy from one workbook to the other. See code: Workbooks(“EOMPricesDownloaderForIntualityAI.xlsm”).Worksheets(“Parameters”).Range(“B5”) = UtilityString

  • Hi,

    I am currently trying to copy data from the sharepoint Excel sheet.
    It is opened as Read only .How can i Edit that respective work book.

  • dear jon
    I am facing problems in storing my worksheet in variables . The path has been double checked but the problem persists. would be grateful if you help me with code.my code is
    Private Sub CommandButton2_Click()

    Dim wsCopy As Worksheet
    Dim wsDest As Worksheet
    Dim lCopyLastRow As Long
    Dim lDestLastRow As Long

    Workbooks.Open (“C:UsersjatinOneDriveDesktopunitfolderunits.xlsm”)
    Workbooks.Open (“C:UsersjatinOneDriveDesktoptempTEST_OL.xlsm”)

    Set wsCopy = Workbooks(“units.xlsm”).Worksheets(“CO_ASC.xlsm”)
    Set wsDest = Workbooks(“TEST_OL.xlsm”).Worksheets(“CO_ASC.xlsm”)

    ‘1. Find last used row in the copy range based on data in column A
    lCopyLastRow = wsCopy.Cells(wsCopy.Rows.Count, “A”).End(xlUp).Row

    ‘2. Find first blank row in the destination range based on data in column A
    ‘Offset property moves down 1 row
    lDestLastRow = wsDest.Cells(wsDest.Rows.Count, “A”).End(xlUp).Offset(1).Row

    ‘3. Clear contents of existing data range
    wsDest.Range(“A2:D” & lDestLastRow).ClearContents

    ‘4. Copy & Paste Data
    wsCopy.Range(“A2:D” & lCopyLastRow).Copy _
    wsDest.Range(“A2”)

    End Sub

  • Hi, I would like to open multiple excel files from a folder and copypaste to another workbook in respective worksheets. Can you help me with this?

  • I am so anxious to learn this information and apply it to my situation, however after I downloaded both workbooks your code will not run. I get a run-time error ‘9’: Subscript out of range in the Sub Copy_Paste_Below_Last_Cell() routine

    when it reaches this line of code:
    ‘Set variables for copy and destination sheets
    Set wsCopy = Workbooks(“New-Data.xlsx”).Worksheets(“Export 2”)
    Both workbooks are saved in the same directory and both are open.

  • Hello Jon,

    Thanks for the extensive and useful macro! I’m pretty new to this stuff.

    I used the macro in the “Pasting Below the Last Cell” topic. I wonder if you could help me with an adjustment to this macro.

    Within the macro, when using Range.End(xlUp) the macro starts searching from down and upwards. However, when in a (fixed) Table format in the worksheet (e.g. My table will always range from A3:M51 and wil not always be fully filled in until A51 but for example one day only filled in until cell A12 and another day until cell A23). The macro, however, will pick cell A51 as “the last cell” to copy from upwards and not until the row of cell A12/A23).

    Result: a Table format will be pasted where partyl nothing is filled in.

    I’m thinking, if it would be possible to include in this macro “PasteSpecial Paste:=xlPasteValues”? If yes, where do I need to add this? In this way I think empty cells in the Table will be copied only as a value and the Table format will disappear in the destination workbook?

    Another solution would maybe be when Range.End(xlUp) is used and I could add another “(Ctrl+”ArrowUp”)” in the macro to go just up until the ‘real’ last filled in cell?

    What would be the easiest to include and how would you include it?

    Thanks in advance and sorry for the long message!

    Jelle

    • Hi Jelle,
      Great question! You can specify the starting cell within the range property.

      Range(“A51”).End(xlUp)

      That line of code will start at cell A51 and go up until if finds the next non-blank cell.

      There are also others ways to accomplish this with Excel Tables in VBA. They are referenced as ListObjects and you can target specific ranges and areas of the Table. We do have an entire training module on ListObjects in our Elevate Excel Training Program, along with extensive training on VBA and all other areas of Excel.

      I hope that helps. Thanks again and have a great day! 🙂

  • How do I copy and paste below the last cell but above the bottom row that has the totals? When I try the copy and paste below the last cell, it goes over the totals row I need to keep.
    Thank you

  • Thank you Jon. This tutorial is not the first that I read from you. But I take the opportunity of this one to thank you. Your tutorials go straight to the essential to know!

  • Hi John,

    Thanks for all you are doing and for sharing your knowlegde! Its much of help.

    This macro could safe me tons of time, but my issue is that my source file name is variable. The file downloads from our CRM and will add a time-stamp behind the file name.

    How can I set-up this macro so I can pick the right source file?

Generic filters

Excel Shortcuts List

keyboard shortcuts list banner

Learn over 270 Excel keyboard & mouse shortcuts for Windows & Mac.

Excel Shortcuts List

Join Our Weekly Newsletter

The Excel Pro Tips Newsletter is packed with tips & techniques to help you master Excel.

Join Our Free Newsletter