= Array(Val(Me.PSDUDateRow), Me.PSDStageCB) ListRows(x).Range(2) = Me.PSDStageCB.Value X = Application.Match(Val(Me.PSDUDateRow). With Sheets('psdata stage cals').ListObjects('PSDataStageCals') If (Me.PSDUDateRow = '') + (Me.PSDStageCB.ListIndex = -1) Then Exit Sub The code is below Private Sub cmdPSDUdate_Click() It used to work perfectly, but now because the excel file has grown in the number of rows, almost 6000 rows, this code is become very slow, takes up to 20 seconds to update the sheetĬan someone please help me speed this code up, or suggest another way to acheive it If it does, it changes the stage, but if it doesn't it adds this 6 digit number to the worksheet How this code works is user enters a 6 digit number in a user form, the VBA then checks another sheet and if this 6 digit number is present on the worksheet. I have an excel file with a VBA code (Not written by me)