Пользовательские комментарии к документации array_unique () имеют много решений. Вот один из них:
kenrbnsn at rbnsn dot com 27-Sep-2005 12:09
Еще один массив Array_Unique для многоразмерных массивов. Я тестировал это только на двухэтапных массивах, но его можно было бы обобщить для большего или использовать рекурсию.
Эта функция использует функции serialize, array_unique и unserialize для выполнения этой работы.
blockquote>function multi_unique($array) { foreach ($array as $k=>$na) $new[$k] = serialize($na); $uniq = array_unique($new); foreach($uniq as $k=>$ser) $new1[$k] = unserialize($ser); return ($new1); }
Это из http://ca3.php.net/manual/en/function.array-unique.php#57202 .
Обновите код создания листа, чтобы он не пытался создавать дубликаты листов:
Private Sub CreateSheet(sheetName)
Dim ws As Worksheet
On Error Resume Next '<< ignore error if sheet doesn't exist
Set ws = ThisWorkbook.Sheets(sheetName)
On Error Goto 0 '<< stop ignoring errors
If ws Is Nothing Then
'sheet doesn't exist, so create it.
Set ws = ThisWorkbook.Sheets.Add(after:= _
ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
ws.Name = sheetName
End If
End Sub