Соскоб в Интернете в VBA и Excel - PullRequest
0 голосов
/ 16 февраля 2010

Я хочу загрузить таблицы данных с веб-сайтов в Excel и перенести определенные фрагменты данных в отдельный рабочий лист для создания базы данных. У меня проблемы с анализом чисел, которые импортируются в одну ячейку в Excel. Например, числа "-7 -110", написанные в точности так же, как на веб-сайте, вводятся в одну ячейку в Excel как "= -7-110", что дает содержимое ячейки "-117". Когда ячейка выделена, в строке формул отображается оригинал = -7-110, но я не знаю, как либо: а) ввести данные как есть и отключить автоформатирование с помощью Excel или б) получить конкретное содержимое ячейки без формирования формулы из ячейки.

Любая помощь приветствуется - спасибо!

Jason

Ответы [ 2 ]

3 голосов
/ 16 февраля 2010

Microsoft предлагает три метода для противодействия встроенному форматированию чисел:

Как избежать автоматического форматирования чисел Если вы хотите ввести значение, такое как 10е5, 1 р или 1-2, а ты не хочешь значение, которое будет преобразовано в встроенный числовой формат, введите число как текстовое значение. Чтобы ввести число в качестве текстового значения, используйте любой из соответствующие методы ниже.

Метод 1
Поместите пробел в начале записи. ПРИМЕЧАНИЕ. Этот метод не работает, если запись напоминает число, отформатированное в научной записи. Например, при вводе 1e9 получается научный номер.

Метод 2

  1. Выберите диапазон ячеек и нажмите «Ячейки» в меню «Формат».
  2. Перейдите на вкладку «Число».
  3. Нажмите Текст, а затем нажмите ОК.

Этот метод позволяет вводить данные в выбранных ячейках в виде текста. Вы должны выполнить эти шаги, прежде чем вводить числа в ячейки.

Метод 3
Перед записью стоит апостроф.
Например, введите следующее: '1 p

1 голос
/ 16 февраля 2010

Адам рассмотрел варианты, если вы вносите изменения в рабочую книгу.

Конечно, вы также можете подготовить область, в которую данные импортируются напрямую из VBA, используя

.NumberFormat

собственность.

Чтобы установить для свойства NumberFormat диапазона или ячеек / с значение «Текст», вы можете использовать

.NumberFormat="@"

Например

Range("C:C").NumberFormat = "@"

преобразует все ячейки в столбце C в формат «Текст».

Что касается извлечения "-7-110", если оно введено в ячейку общего формата (и отображается результат формулы i.e -117), вы можете получить доступ к

.Formula

свойство ячейки.

Например, если вышеприведенная формула была введена в ячейку C1, код VBA ниже

Range("C1").Formula

или эквивалентно

Cells(1, 3).Formula

вернет строку "= -7-110".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...