Добрый вечер! Вот какая ситуация: 1. есть таблица с цифровыми значениями 2. и есть такая же вторая,только с запароленными формулами, 3. из первой были перенесены данные и теперь надо перепроверить ли все числа совпадают При мне как то,если ничего не путаю, сверяли таблицы как то накладывая одну на другую и ошибки проявлялись. Подскажите, пожалуйста, какие есть варианты? таблицы огромные и с ума сойти можно пока сверишь все Заранее очень благодарна
Добрый вечер! Вот какая ситуация: 1. есть таблица с цифровыми значениями 2. и есть такая же вторая,только с запароленными формулами, 3. из первой были перенесены данные и теперь надо перепроверить ли все числа совпадают При мне как то,если ничего не путаю, сверяли таблицы как то накладывая одну на другую и ошибки проявлялись. Подскажите, пожалуйста, какие есть варианты? таблицы огромные и с ума сойти можно пока сверишь все Заранее очень благодарна Elen102
На вскидку (если все значения числовые) могу предложить: выделить одну таблицу и наложить ее на вторую при помощи Специальная вставка - Операция Вычесть. Там, где значение не будет равно 0 - ошибка.
На вскидку (если все значения числовые) могу предложить: выделить одну таблицу и наложить ее на вторую при помощи Специальная вставка - Операция Вычесть. Там, где значение не будет равно 0 - ошибка.МВТ
Лень набирать тестовую таблицу, но вроде бы должен работать макрос [vba]
Код
Sub TableComp() Dim WS1, WS2, aWs As Worksheet Dim Cl, Rw, L As Long FirstRow = 1 FirstColumn = 1 Set WS1 = Sheets("Лист1") Set WS2 = Sheets("Лист2") Set aWs = Sheets("Сравнение") Cl = WS1.Cells(FirstRow, Columns.Count).End(xlToLeft).Column Rw = WS1.Cells(Rows.Count, FirstColumn).End(xlUp).Row aWs.Activate Range("A1:D3" & Cells(Rows.Count, 1).End(xlUp).Row).Clear Cells(1, 1) = "Адрес ячейки" Cells(1, 2) = "Значение в таблице 1" Cells(1, 3) = "Значение в таблице 2" Cells(1, 4) = "Различие" L = FirstRow + 1 For I = 2 To Rw For J = 2 To Cl If WS1.Cells(I, J) <> WS2.Cells(I, J) Then Cells(L, 1) = Replace(WS1.Cells(I, J).Address, "$", "") Cells(L, 2) = WS1.Cells(I, J) Cells(L, 3) = WS2.Cells(I, J) If IsNumeric(WS1.Cells(I, J)) And IsNumeric(WS2.Cells(I, J)) Then Cells(L, 4) = WS1.Cells(I, J) - WS2.Cells(I, J) L = L + 1 End If Next J Next I End Sub
[/vba] Значения FirstRow и FirstColumn подставить исходя из расположения заголовка таблицы (надеюсь, он в одну строку и без объединенных ячеек, иначе придется немного переделывать) UPD допилил
Лень набирать тестовую таблицу, но вроде бы должен работать макрос [vba]
Код
Sub TableComp() Dim WS1, WS2, aWs As Worksheet Dim Cl, Rw, L As Long FirstRow = 1 FirstColumn = 1 Set WS1 = Sheets("Лист1") Set WS2 = Sheets("Лист2") Set aWs = Sheets("Сравнение") Cl = WS1.Cells(FirstRow, Columns.Count).End(xlToLeft).Column Rw = WS1.Cells(Rows.Count, FirstColumn).End(xlUp).Row aWs.Activate Range("A1:D3" & Cells(Rows.Count, 1).End(xlUp).Row).Clear Cells(1, 1) = "Адрес ячейки" Cells(1, 2) = "Значение в таблице 1" Cells(1, 3) = "Значение в таблице 2" Cells(1, 4) = "Различие" L = FirstRow + 1 For I = 2 To Rw For J = 2 To Cl If WS1.Cells(I, J) <> WS2.Cells(I, J) Then Cells(L, 1) = Replace(WS1.Cells(I, J).Address, "$", "") Cells(L, 2) = WS1.Cells(I, J) Cells(L, 3) = WS2.Cells(I, J) If IsNumeric(WS1.Cells(I, J)) And IsNumeric(WS2.Cells(I, J)) Then Cells(L, 4) = WS1.Cells(I, J) - WS2.Cells(I, J) L = L + 1 End If Next J Next I End Sub
[/vba] Значения FirstRow и FirstColumn подставить исходя из расположения заголовка таблицы (надеюсь, он в одну строку и без объединенных ячеек, иначе придется немного переделывать) UPD допилил МВТ
Сообщение отредактировал МВТ - Четверг, 09.04.2015, 23:21