Еще один способ отключить данные без использования VBA - это PowerQuery, бесплатная надстройка для Excel 2010 и выше, доступная здесь: http://www.microsoft.com/en-us/download/details. aspx? id = 39379
Установите и активируйте надстройку Power Query. Затем выполните следующие шаги:
Добавьте метку столбца к источнику данных и переведите его в таблицу Excel через Insert> Table или Ctrl-T.
[/g1]
Выберите любую ячейку в таблице и на ленте Power Query нажмите «Из таблицы».
[/g2]
Это откроет таблицы в окне редактора Power Query Editor.
[/g3]
Нажмите на заголовок столбца первого столбца, чтобы выбрать его. Затем на ленте Transform выберите раскрывающийся список Unpivot Columns и выберите Unpivot другие столбцы.
Для версий Power Query, которые не имеют команды других столбцов Unpivot, выберите все столбцы, кроме первого (используя Shift-щелчок на заголовках столбцов) и используйте команду Unpivot.
[/g4]
В результате получается плоская таблица. Нажмите «Закрыть» и «Загрузить» на ленте «Главная», и данные будут загружены на новый лист Excel.
[/g5]
Теперь к хорошей части. Добавьте некоторые данные в свою исходную таблицу, например
[/g6]
Нажмите на лист с помощью таблицы результатов Power Query, а на ленте данных щелкните Refresh all. Вы увидите что-то вроде:
[/g7]
Power Query - это не просто одноразовое преобразование. Он повторяется и может быть связан с динамически изменяющимися данными.
Я не уверен, будет ли это работать на Вас, но я прочитал страницу некоторое время назад описание метод, который использует gdb
Так как мне не разрешают отредактировать ответ Jauco, я дам полный ответ, который работал на меня (страница Russell полагается на негарантируемое поведение, что при закрытии fd 1 для stdout следующие создают вызов, откроет fd 1.
Так, выполняет простой бесконечный сценарий как это:
import time
while True:
print 'test'
time.sleep(1)
Сохраняют его к test.py, работают с
python test.py
, Получают изодромное с предварением:
ps auxw | grep test.py
Теперь, присоедините gdb:
gdb -p (pid)
и делают fd волшебство:
(gdb) call creat("/tmp/stdout", 0600)
$1 = 3
(gdb) call dup2(3, 1)
$2 = 1
Теперь можно выследить/tmp/stdout и видеть вывод, который раньше переходил к stdout.
Вы не заявляете свою операционную систему, но я собираюсь взять удар и сказать "Linux".
Наблюдение, что пишется в stderr и stdout, вероятно, не собирается помогать. Если это полезно, Вы могли бы использовать мишень (1) перед запуском сценария, чтобы сделать копию stderr и stdout.
можно использовать PS (1) для поиска wchan. Это говорит Вам, чего ожидает процесс. При рассмотрении вывода strace можно проигнорировать объем вывода и определить последний (заблокированный) системный вызов. Если это - операция на дескрипторе файла, можно пойти назад в выводе и определить основной объект (файл, сокет, канал, и т.д.) Оттуда, ответ, вероятно, будет четким.
можно также отправить процессу сигнал, который заставляет его выводить ядро, и затем использовать отладчик и базовый файл для получения отслеживания стека.
Метод Gdb кажется лучше, но можно сделать это с strace, также:
файл
-e write=set
Perform a full hexadecimal and ASCII dump of all the
data written to file descriptors listed in the spec-
ified set. For example, to see all output activity
on file descriptors 3 and 5 use -e write=3,5. Note
that this is independent from the normal tracing of
the write(2) system call which is controlled by the
option -e trace=write.
strace-p-e write=1-s 1024-o Это распечатывает несколько больше потребности thanyou (шестнадцатеричная часть), но Вы можете sed это легко.