Как перенести данные в Excel? [Дубликат]

Мой аккуратный трюк JavaScript состоит в том, чтобы разделить весь сценарий на две разные функции!

Чтобы подготовить вещи, объявляется одна глобальная переменная и определяется один обработчик событий:

  var tTimeout;
  element.addEventListener("transitionend", afterTransition, true);//firefox
  element.addEventListener("webkitTransitionEnd", afterTransition, true);//chrome

Затем, когда я скрываю элемент, я использую что-то вроде этого:

function hide(){
  element.style.opacity = 0;
}

function afterTransition(){
  element.style.display = 'none';
}

Для повторного появления элемента я делаю что-то вроде этого:

function show(){
  element.style.display = 'block';
  tTimeout = setTimeout(timeoutShow, 100);
}

function timeoutShow(){
  element.style.opacity = 1;
}

Он работает, пока !

-1
задан Jeeped 23 November 2015 в 04:49
поделиться

1 ответ

  1. Прежде чем писать какой-либо код, перейдите в «Инструменты ► VBE» → «Параметры» и поставьте галочку рядом с надписью «Требовать переменную» на вкладке «Редактор». Это позволит сэкономить время отладки, если вы набрали переменную при вводе кода. Эта опция будет запомнена, и следующее будет автоматически помещено в область «Объявления» каждого созданного вами нового кода модуля. Option Explicit
  2. Начните создавать свою вспомогательную процедуру и введите любые переменные, которые вы уже знаете, что вам понадобится. Sub data_Rollup () Dim rw as Long, strA as String, strB as String 'lots to go здесь End Sub
  3. Определите свою рабочую среду с одним или несколькими С ... End С помощью операторов . Используйте свойство Range.CurrentRegion , чтобы изолировать ссылки на строку и столбец на «остров» данных, происходящих в ячейках A1. With Worksheets («Sheet1») с .Cells (1, 1) .CurrentRegion 'весь рабочий код здесь End With End With
  4. Range.Sort ваши данные в столбце A сначала столбцы B, C и D. Вы можете сортировать только по трем ключевым столбцам за раз, поэтому вам нужно сначала отсортировать столбец A, чтобы получить упорядоченные, а затем B, C и D, чтобы совместить дубликаты. Вы должны знать, имеют ли ваши данные метки заголовка столбца или нет. Не полагайтесь на Excel на xlGuess . .Cells.Sort Key1: =. Столбцы (1), Order1: = xlAscending, _ Orientation: = xlTopToBottom, Header: = xlYes .Cells.Sort Key1: =. Столбцы (2), Order1: = xlAscending, _ Key2: = Колонны (3), Order2: = xlAscending, _ Key3: =. Столбцы (4), Order3: = xlAscending, _ Ориентация: = xlTopToBottom, Заголовок: = xlYes
  5. Петля снизу вверх , Вы захотите избавиться от строк, которые вы совмещаете с одинаковыми строками, и если вы продвигаетесь сверху вниз, а при удалении строк вы рискуете перепрыгнуть через строку. например вы удаляете строку, и все меняется; вы увеличиваете (цикл) и переходите к следующей строке, но на самом деле вы пропустили тот, который был просто сдвинут. Для rw = .Rows.Count¹ To 2 Step -1 'далее сюда Далее rw
  6. Объедините строки из столбцов B, C и D вместе для текущей строки и строки выше. Используйте функцию LCase или функцию UCase , чтобы удалить чувствительность к регистру при сравнении текстовых строк. Если найдено совпадение между тремя информационными столбцами, Присоедините содержимое столбца A строки в строке с разделителем, затем используйте метод Range.Delete , чтобы окончательно удалить строку. strA = Join (Array (.Cells (rw, 2), .Cells (rw, 3), .Cells (rw, 4)), ChrW (8203)) strB = Join (Array (.Cells (rw - 1, 2) ), Cells (rw - 1, 3), .Cells (rw - 1, 4)), ChrW (8203)) Если LCase (strA) = LCase (strB) Затем. Cells (rw - 1, 1) = Join (Array (.Cells (rw - 1, 1), .Cells (rw, 1)), ",") .Rows (rw) .EntireRow.Delete End If
  7. Когда вы думаете, что это выглядит правильно , используйте Alt + D + L для компиляции. Обработать необъявленные переменные или отсутствующее предложение при необходимости закрывается.
  8. Когда он компилируется без ошибок, поместите курсор в любом месте процедуры и начните нажимать F8. Это позволит вам выполнить процедуру примерно по очереди, чтобы вы могли видеть, что происходит. Используйте окно просмотра и наведите курсор на переменные, чтобы увидеть текущие состояния и значения. Если вы уверены в разделе, поместите курсор на строку рабочего кода ниже раздела и нажмите Ctrl + F8 на * Run-to-cursor.
  9. Когда он работает без надёжности, вы можете посмотреть добавление оптимизаций во время выполнения, таких как Application.ScreenUpdating свойство и другие.

Ничего к этому.


¹ Поскольку вы работаете в Свойство Range.CurrentRegion , .Rows.Count - это общее количество строк в .CurrentRegion.

1
ответ дан Jeeped 28 August 2018 в 03:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: