Удаляйте ваши принты и делайте нормальное логгирование через logging. В частности нужен logging.exception, чтобы нормально понимать где вообще происходит ошибка. С учетом тройной вложенности
except Exception
сейчас код хуже, чем он был бы вообще без обработки ошибок.
Предположу по принтам, что ошибка в строке
workbook = workbooks.Open(r"{}".format(abs_path), ReadOnly=1)
и далее может быть 2 класса ошибок: ошибки, которые можно обработать и нельзя. Чтобы понять какая это ошибка, нужно видеть полный traceback, но с учетом какой-то черной виндовой магии для работы с экселем, возможно его вообще не получить.
К первому типу ошибок может отнестись то, что возможно Open принимает иные аргументы или ждет другой разделитель пути.
Ко второму какие-то внешние ошибки, например если эксель не может открыть 2 экземпляра, нет прав на чтение файла или какая-то иная херня на стороне винды/экселя. Текст ошибки очень абстрактный, я уверен ошибка именно подобного рода.
Ну и задумайтесь о том, чтобы придумать менее проклятое и более масштабируемое решение. Не знаю как выглядит вызывающий код и надеюсь вы не используете эксель как базу данных, но генерировать реальный xlsx файл с копией диапазона было бы значительно безопаснее, быстрее и проще.