Just out of curiosity I went off and had a look for a function that does the same for excel spreadsheets as my previous post did for databases.
Here’s a function that will work.
Public Function Scramble(Optional ByRef UserText As Variant, Optional ByRef Everytime As Variant) As String On Error GoTo ScrambleError Dim i As Long Dim Num As Long Dim NewPosition As Long Dim Temp As String If IsMissing(UserText) Then Scramble = "No data" Exit Function ' No quotes automatically generates an error from the worksheet. ElseIf IsError(UserText) Then Scramble = "Error - try adding quote marks around your entry." Exit Function End If Application.Volatile (Not IsMissing(Everytime)) If TypeName(UserText) = "Range" Then UserText = UserText(1).Value Num = Len(UserText) If Num > 0 Then For i = 1 To Num Temp = Mid$(UserText, i, 1) NewPosition = Int(Num * Rnd + 1) Mid$(UserText, i, 1) = Mid$(UserText, NewPosition, 1) Mid$(UserText, NewPosition, 1) = Temp Next ' i Scramble = UserText Else Scramble = "No data" 'Can result from entering "" End If Exit Function ScrambleError: Scramble = "Error " & Err.Number End Function