С этим дизайном вы не можете. В вашем временном массиве столько же записей, сколько столбцов в Excel (поэтому ReDim Preserve temp (от 1 до 1, 1 до x) не требуется), поэтому нет места для дополнительной информации, которую можно записать в строку с помощью транспонирования.
Одна вещь, которую вы можете сделать, это использовать второй массив для хранения книги и имени листа. Используйте n в качестве индекса, который соответствует строке в массиве a и массиву, содержащему рабочую книгу и лист в другом массиве.
Вы также можете сохранить строку и столбец в дополнительном массиве, чтобы вы знали рабочую книгу, имя листа, строка и столбец для вашего соответствия.
если вам не нужна полная строка, а только значение найденной ячейки, вы можете выполнить следующую
::
a(n) = Array(r.Parent.Parent.Name, r.Parent.Name, r.Row, r.Column, r.Value)
::
запись на лист
With ThisWorkbook.Sheets("IP_Info")
.UsedRange.ClearContents
if n > 0 then
.Cells(1, 1).Resize(n, 5).Value = Application.Transpose(Application.Transpose(a))
end if
end with