This code I gave you is not complicated and you should easily be able to find out what went wrong. It's called troubleshooting. I'm going to assume you don't know how to troubleshoot. I'm going to teach you. You probably initiated the code using the "run" button or you applied the code to a button and it will run when you click it. Well don't do that. When you troubleshoot, you need to inspect the code line by line to ensure that the output of each line of code is working correctly. The way you do this is with the F8 button on your keyboard. While you are looking at the code in vba, press the F8 button 1 time. the line of code being evaluated by vba will turn the backround yellow. Press the F8 button again. Now the next line of code turned yellow. The code above the yellow backrounded text has just finished processing. Before you press F8 again, hover your mouse over each part of the line of code that was just processed. It will tell you what each variable equals. You must do this for each line of code.
For example: Say you have this code
Code:
Sub Test()
test = "hello world"
End Sub
When you press F8, it will highlight yellow "test = "hello world""
It is not processed yet so if you hover your mouse over "test", it will say NULL or ""
but when you press F8 again, it will highlight the next line of code. "test = "hello world"" will not be highlighted anymore. But it has just been processed. Now if you hover your mouse over "test" it will display "hello world" in a pop-up notification.
This is how you look to make sure each line of code is returning what it is suppose to.
Now I gave you working code. Which means you modified it, or you may have accidentally inserted something into the code on accident. Another possability is that your dataset is not how you described it. I created this code to match what you described as your dataset in your first post. Troubleshoot the code and find out if every variable is outputing correctly before it reaches the error. Since the error is located at the Do Until loop, I suggest focusing on the string that instanciates evaluateString and see what it equals before it becomes part of the loop. evaluateString should equal a value or a blank that looks like quotes "". If evaluateString doesn't not equal one of those two things, then replay to this discussion what evaluateString equals. For example: evaluateString equals NULL or error or whatever. It should not equal NULL or error or anything. I would start by copy pasting my code into your vba again to make sure you didn't accidentally add something to the code.