Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Оптимизация скорости работы макроса - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Оптимизация скорости работы макроса (Макросы/Sub)
Оптимизация скорости работы макроса
Blasster88 Дата: Суббота, 16.09.2017, 10:48 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 1 ±
Замечаний: 0% ±

Excel 2007
Доброго времени суток! Уважаемые форумчане, прошу Вас помочь в решении задачи.
Есть две (или более) книги. Необходимо взять значение из 1 книги и поискать его во 2-ой. Если значение будет найдено, то скопировать рядом находящиеся данные из 2-ой книги в 1-ую. Я написал код с помощью циклов. Он работоспособен. Но поскольку 1 и 2 книги содержат очень много строк( десятки тысяч), работа макроса растягивается на часы. Может быть сможете посоветовать как исполнить данный код с соблюдением критериев поиска, но без использования циклов?
[vba]
Код

Sub fsdf()
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Dim eks As Workbook
Set eks = Workbooks.Open("C:\КП\ЕКС\1-0001.xlsx")
Dim listeks As Excel.Worksheet
Set listeks = eks.Worksheets("1-0001")
Konez_eks = listeks.Cells(Rows.Count, 1).End(xlUp).Row
Dim fns013 As Workbook
Set fns013 = Workbooks.Open("C:\КП\ФНС\013.xls")
Dim listfns013 As Excel.Worksheet
Set listfns013 = fns013.Worksheets("013")
listfns013.Cells.MergeCells = False
Konez_fns013 = listfns013.Cells(Rows.Count, 2).End(xlUp).Row
For a = 2 To Konez_eks
    For b = 2 To Konez_fns013

        If (listeks.Cells(a, 22) = "013" And listeks.Cells(a, 3) Like "*" & "ЭДО" And listeks.Cells(a, 5) = listfns013.Cells(b, 2) And listeks.Cells(a, 11) = listfns013.Cells(b - 1, 2 - 1)) _
        Or (listeks.Cells(a, 22) = "013" And listeks.Cells(a, 3) Like "*" & "Бумага" And listeks.Cells(a, 21) = listfns013.Cells(b, 2) And listeks.Cells(a, 11) = listfns013.Cells(b - 1, 2 - 1)) _
        Then
        listeks.Cells(a, 23) = listfns013.Cells(b - 1, 2 - 1) 'счет
        listeks.Cells(a, 24) = listfns013.Cells(b, 2) '29000
        listeks.Cells(a, 25) = listfns013.Cells(b, 2 + 1) 'Сообщение банка
        listeks.Cells(a, 26) = listfns013.Cells(b - 1, 2 + 2) 'Квитанция
        End If
    Next b
Next a
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
[/vba]


Сообщение отредактировал Blasster88 - Суббота, 16.09.2017, 11:55
 
Ответить
СообщениеДоброго времени суток! Уважаемые форумчане, прошу Вас помочь в решении задачи.
Есть две (или более) книги. Необходимо взять значение из 1 книги и поискать его во 2-ой. Если значение будет найдено, то скопировать рядом находящиеся данные из 2-ой книги в 1-ую. Я написал код с помощью циклов. Он работоспособен. Но поскольку 1 и 2 книги содержат очень много строк( десятки тысяч), работа макроса растягивается на часы. Может быть сможете посоветовать как исполнить данный код с соблюдением критериев поиска, но без использования циклов?
[vba]
Код

Sub fsdf()
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Dim eks As Workbook
Set eks = Workbooks.Open("C:\КП\ЕКС\1-0001.xlsx")
Dim listeks As Excel.Worksheet
Set listeks = eks.Worksheets("1-0001")
Konez_eks = listeks.Cells(Rows.Count, 1).End(xlUp).Row
Dim fns013 As Workbook
Set fns013 = Workbooks.Open("C:\КП\ФНС\013.xls")
Dim listfns013 As Excel.Worksheet
Set listfns013 = fns013.Worksheets("013")
listfns013.Cells.MergeCells = False
Konez_fns013 = listfns013.Cells(Rows.Count, 2).End(xlUp).Row
For a = 2 To Konez_eks
    For b = 2 To Konez_fns013

        If (listeks.Cells(a, 22) = "013" And listeks.Cells(a, 3) Like "*" & "ЭДО" And listeks.Cells(a, 5) = listfns013.Cells(b, 2) And listeks.Cells(a, 11) = listfns013.Cells(b - 1, 2 - 1)) _
        Or (listeks.Cells(a, 22) = "013" And listeks.Cells(a, 3) Like "*" & "Бумага" And listeks.Cells(a, 21) = listfns013.Cells(b, 2) And listeks.Cells(a, 11) = listfns013.Cells(b - 1, 2 - 1)) _
        Then
        listeks.Cells(a, 23) = listfns013.Cells(b - 1, 2 - 1) 'счет
        listeks.Cells(a, 24) = listfns013.Cells(b, 2) '29000
        listeks.Cells(a, 25) = listfns013.Cells(b, 2 + 1) 'Сообщение банка
        listeks.Cells(a, 26) = listfns013.Cells(b - 1, 2 + 2) 'Квитанция
        End If
    Next b
Next a
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
[/vba]

Автор - Blasster88
Дата добавления - 16.09.2017 в 10:48
Udik Дата: Суббота, 16.09.2017, 12:03 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1588
Репутация: 192 ±
Замечаний: 0% ±

Excel 2016 х 64
Не вникая в код можно сразу предложить загружать данные с листов в массивы и далее с ними работать. А в конце выгрузить массив обратно на лист. Обычно это в разы ускоряет обработку (на больших объемах)


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com
 
Ответить
СообщениеНе вникая в код можно сразу предложить загружать данные с листов в массивы и далее с ними работать. А в конце выгрузить массив обратно на лист. Обычно это в разы ускоряет обработку (на больших объемах)

Автор - Udik
Дата добавления - 16.09.2017 в 12:03
Blasster88 Дата: Суббота, 16.09.2017, 12:11 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 1 ±
Замечаний: 0% ±

Excel 2007
Udik, Вы не могли бы привести пример кода? Я просто только начинаю писать процедуры и далеко не всеми приемами владею.
 
Ответить
СообщениеUdik, Вы не могли бы привести пример кода? Я просто только начинаю писать процедуры и далеко не всеми приемами владею.

Автор - Blasster88
Дата добавления - 16.09.2017 в 12:11
Udik Дата: Суббота, 16.09.2017, 14:07 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1588
Репутация: 192 ±
Замечаний: 0% ±

Excel 2016 х 64
загрузка с листа в массив
[vba]
Код

   Set rng1 = .Range("A" & rowStart & ":BB" & rowLast)

    arrTbl2 = rng1.Value
[/vba]
arrTbl2 объявляется без указания типа
[vba]
Код

Dim arrTbl2
[/vba]

выгрузка на лист
[vba]
Код

        wb2.Worksheets(nmFB).Range("A" & rowStart2).Resize(UBound(arrTbl2, 1), UBound(arrTbl2, 2)) = arrTbl2
[/vba]
как с массивом работать сами разберётесь. Применительно к вашей задаче, надо 2 массива объявлять.


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com
 
Ответить
Сообщениезагрузка с листа в массив
[vba]
Код

   Set rng1 = .Range("A" & rowStart & ":BB" & rowLast)

    arrTbl2 = rng1.Value
[/vba]
arrTbl2 объявляется без указания типа
[vba]
Код

Dim arrTbl2
[/vba]

выгрузка на лист
[vba]
Код

        wb2.Worksheets(nmFB).Range("A" & rowStart2).Resize(UBound(arrTbl2, 1), UBound(arrTbl2, 2)) = arrTbl2
[/vba]
как с массивом работать сами разберётесь. Применительно к вашей задаче, надо 2 массива объявлять.

Автор - Udik
Дата добавления - 16.09.2017 в 14:07
Blasster88 Дата: Суббота, 16.09.2017, 14:47 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 1 ±
Замечаний: 0% ±

Excel 2007
Udik, Спасибо за ответ! Скажите, а предложенный вами способ подойдет для таких листов? И на каком этапе их сталкивать я не совсем понял. Извините за некомпетентность.
К сообщению приложен файл: 0599999.rar (10.0 Kb)
 
Ответить
СообщениеUdik, Спасибо за ответ! Скажите, а предложенный вами способ подойдет для таких листов? И на каком этапе их сталкивать я не совсем понял. Извините за некомпетентность.

Автор - Blasster88
Дата добавления - 16.09.2017 в 14:47
Blasster88 Дата: Суббота, 16.09.2017, 15:10 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 1 ±
Замечаний: 0% ±

Excel 2007
Что бы было понятней вкладываю рабочую версию макроса с книгами. если кто то сможет помочь поправить код что бы работало быстрее, то буду очень благодарен. Так как сам не очень понял к использовать массив в моей ситуации.
К сообщению приложен файл: 8365405.rar (40.4 Kb)
 
Ответить
СообщениеЧто бы было понятней вкладываю рабочую версию макроса с книгами. если кто то сможет помочь поправить код что бы работало быстрее, то буду очень благодарен. Так как сам не очень понял к использовать массив в моей ситуации.

Автор - Blasster88
Дата добавления - 16.09.2017 в 15:10
Udik Дата: Суббота, 16.09.2017, 15:54 | Сообщение № 7
Группа: Друзья
Ранг: Старожил
Сообщений: 1588
Репутация: 192 ±
Замечаний: 0% ±

Excel 2016 х 64
Скажите, а предложенный вами способ подойдет для таких листов?

Данные с такого листа загрузятся и даже выгрузятся, но вот форматирования на новых записях не будет. В общем если такой лист загрузить, потом что-то изменить в "ячейках" и выгрузить, то все нормально. А если какие-то махинации с размерностью массива делать, то могут проблемы возникнуть.
Да, если на листах есть формулы, так сделать не получится, т.к. в массив запишутся значения.


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com


Сообщение отредактировал Udik - Суббота, 16.09.2017, 16:11
 
Ответить
Сообщение
Скажите, а предложенный вами способ подойдет для таких листов?

Данные с такого листа загрузятся и даже выгрузятся, но вот форматирования на новых записях не будет. В общем если такой лист загрузить, потом что-то изменить в "ячейках" и выгрузить, то все нормально. А если какие-то махинации с размерностью массива делать, то могут проблемы возникнуть.
Да, если на листах есть формулы, так сделать не получится, т.к. в массив запишутся значения.

Автор - Udik
Дата добавления - 16.09.2017 в 15:54
Blasster88 Дата: Суббота, 16.09.2017, 16:09 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 1 ±
Замечаний: 0% ±

Excel 2007
Udik, Мне главное что бы данные корректно скопировались из книги 2(013) в книгу 1(1-0001). Сможете помочь?
 
Ответить
СообщениеUdik, Мне главное что бы данные корректно скопировались из книги 2(013) в книгу 1(1-0001). Сможете помочь?

Автор - Blasster88
Дата добавления - 16.09.2017 в 16:09
Udik Дата: Суббота, 16.09.2017, 16:16 | Сообщение № 9
Группа: Друзья
Ранг: Старожил
Сообщений: 1588
Репутация: 192 ±
Замечаний: 0% ±

Excel 2016 х 64
Ну загрузить в массив лист могу сделать, но разбираться что куда надо копировать мне лень.


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com
 
Ответить
СообщениеНу загрузить в массив лист могу сделать, но разбираться что куда надо копировать мне лень.

Автор - Udik
Дата добавления - 16.09.2017 в 16:16
Blasster88 Дата: Суббота, 16.09.2017, 16:19 | Сообщение № 10
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 1 ±
Замечаний: 0% ±

Excel 2007
Udik, Этим вы мне очень поможете, а там дальше я уж сам докручу с копированием
 
Ответить
СообщениеUdik, Этим вы мне очень поможете, а там дальше я уж сам докручу с копированием

Автор - Blasster88
Дата добавления - 16.09.2017 в 16:19
Udik Дата: Суббота, 16.09.2017, 16:41 | Сообщение № 11
Группа: Друзья
Ранг: Старожил
Сообщений: 1588
Репутация: 192 ±
Замечаний: 0% ±

Excel 2016 х 64
Вот сделал. Только не понял почему ссылки идут на столбцы больше 22. На листе последний столбец 22, я под этот размер массив делал. Сейчас наверняка ошибка выскочит о выходе за границы массива.
[vba]
Код

Sub fsdf()
Dim arrTbl1, arrTbl2
Dim rng1 As Range
Application.DisplayAlerts = False
'Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
st = Timer

Dim eks As Workbook
Set eks = Workbooks.Open("C:\Users\Александр\Desktop\КП\ЕКС\1-0002.xlsx")
Dim listeks As Excel.Worksheet
Set listeks = eks.Worksheets("1-0001")

Konez_eks = listeks.Cells(Rows.Count, 1).End(xlUp).Row
Set rng1 = listeks.Range(.Cells(1, 1), .Cells(Konez_eks, 22))
arrTbl1 = rng1.Value '' загружаем лист из файла 1-0002.xlsx

Dim fns013 As Workbook
Set fns013 = Workbooks.Open("C:\Users\Александр\Desktop\КП\ФНС\013.xls")
Dim listfns013 As Excel.Worksheet
Set listfns013 = fns013.Worksheets("013")
listfns013.Cells.MergeCells = False

Konez_fns013 = listfns013.Cells(Rows.Count, 2).End(xlUp).Row
Set rng1 = listeks.Range(.Cells(1, 1), .Cells(Konez_fns013, 5))
arrTbl2 = rng1.Value ''загружаем лист из файла 13.xlsx

For a = 2 To Konez_eks
    If listeks.Cells(a, 22) = "013" Then
         For b = 2 To Konez_fns013
            If (arrTbl1(a, 3) Like "*" & "ЭДО" And arrTbl1(a, 5) = arrTbl2(b, 2) And arrTbl1(a, 11) = arrTbl2(b - 1, 2 - 1)) _
            Or (arrTbl1(a, 3) Like "*" & "Бумага" And arrTbl1(a, 21) = arrTbl2(b, 2) And arrTbl1(a, 11) = arrTbl2(b - 1, 2 - 1)) _
            Then
            arrTbl1(a, 23) = arrTbl2(b - 1, 2 - 1) 'счет
            arrTbl1(a, 24) = arrTbl2(b, 2) '29000
            arrTbl1(a, 25) = arrTbl2(b, 2 + 1) 'Сообщение банка
            arrTbl1(a, 26) = arrTbl2(b - 1, 2 + 2) 'Квитанция
            End If
        Next b
    End If
Next a

listeks.Range("A1").Resize(UBound(arrTbl1, 1), UBound(arrTbl1, 2)) = arrTbl1 '' выгружаем на лист 1-й массив.

fsh = Timer
MsgBox "ОК! Время работы макроса: " & (fsh - st) \ 60 & " мин. " & Round((fsh - st) - (((fsh - st) \ 60) * 60), 0) & " сек."

Application.DisplayAlerts = True
'Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub

[/vba]
К сообщению приложен файл: 0006597.xlsm (25.8 Kb)


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com
 
Ответить
СообщениеВот сделал. Только не понял почему ссылки идут на столбцы больше 22. На листе последний столбец 22, я под этот размер массив делал. Сейчас наверняка ошибка выскочит о выходе за границы массива.
[vba]
Код

Sub fsdf()
Dim arrTbl1, arrTbl2
Dim rng1 As Range
Application.DisplayAlerts = False
'Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
st = Timer

Dim eks As Workbook
Set eks = Workbooks.Open("C:\Users\Александр\Desktop\КП\ЕКС\1-0002.xlsx")
Dim listeks As Excel.Worksheet
Set listeks = eks.Worksheets("1-0001")

Konez_eks = listeks.Cells(Rows.Count, 1).End(xlUp).Row
Set rng1 = listeks.Range(.Cells(1, 1), .Cells(Konez_eks, 22))
arrTbl1 = rng1.Value '' загружаем лист из файла 1-0002.xlsx

Dim fns013 As Workbook
Set fns013 = Workbooks.Open("C:\Users\Александр\Desktop\КП\ФНС\013.xls")
Dim listfns013 As Excel.Worksheet
Set listfns013 = fns013.Worksheets("013")
listfns013.Cells.MergeCells = False

Konez_fns013 = listfns013.Cells(Rows.Count, 2).End(xlUp).Row
Set rng1 = listeks.Range(.Cells(1, 1), .Cells(Konez_fns013, 5))
arrTbl2 = rng1.Value ''загружаем лист из файла 13.xlsx

For a = 2 To Konez_eks
    If listeks.Cells(a, 22) = "013" Then
         For b = 2 To Konez_fns013
            If (arrTbl1(a, 3) Like "*" & "ЭДО" And arrTbl1(a, 5) = arrTbl2(b, 2) And arrTbl1(a, 11) = arrTbl2(b - 1, 2 - 1)) _
            Or (arrTbl1(a, 3) Like "*" & "Бумага" And arrTbl1(a, 21) = arrTbl2(b, 2) And arrTbl1(a, 11) = arrTbl2(b - 1, 2 - 1)) _
            Then
            arrTbl1(a, 23) = arrTbl2(b - 1, 2 - 1) 'счет
            arrTbl1(a, 24) = arrTbl2(b, 2) '29000
            arrTbl1(a, 25) = arrTbl2(b, 2 + 1) 'Сообщение банка
            arrTbl1(a, 26) = arrTbl2(b - 1, 2 + 2) 'Квитанция
            End If
        Next b
    End If
Next a

listeks.Range("A1").Resize(UBound(arrTbl1, 1), UBound(arrTbl1, 2)) = arrTbl1 '' выгружаем на лист 1-й массив.

fsh = Timer
MsgBox "ОК! Время работы макроса: " & (fsh - st) \ 60 & " мин. " & Round((fsh - st) - (((fsh - st) \ 60) * 60), 0) & " сек."

Application.DisplayAlerts = True
'Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub

[/vba]

Автор - Udik
Дата добавления - 16.09.2017 в 16:41
Blasster88 Дата: Суббота, 16.09.2017, 16:50 | Сообщение № 12
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 1 ±
Замечаний: 0% ±

Excel 2007
Udik, Спасибо вам большое, сейчас буду пробовать! А ссылки идут потому что я как раз и копирую данные из второй книги в первые свободные столбцы, т.е. добавляю информацию - последний столбец у нас 22, соответственно в 23, 24...я добавляю данные из книги два
 
Ответить
СообщениеUdik, Спасибо вам большое, сейчас буду пробовать! А ссылки идут потому что я как раз и копирую данные из второй книги в первые свободные столбцы, т.е. добавляю информацию - последний столбец у нас 22, соответственно в 23, 24...я добавляю данные из книги два

Автор - Blasster88
Дата добавления - 16.09.2017 в 16:50
Blasster88 Дата: Суббота, 16.09.2017, 17:16 | Сообщение № 13
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 1 ±
Замечаний: 0% ±

Excel 2007
Udik, Ругается на строку
[vba]
Код
Set rng1 = listeks.Range(Cells(1, 1), Cells(Konez_fns013, 5))
[/vba]
 
Ответить
СообщениеUdik, Ругается на строку
[vba]
Код
Set rng1 = listeks.Range(Cells(1, 1), Cells(Konez_fns013, 5))
[/vba]

Автор - Blasster88
Дата добавления - 16.09.2017 в 17:16
Udik Дата: Суббота, 16.09.2017, 17:32 | Сообщение № 14
Группа: Друзья
Ранг: Старожил
Сообщений: 1588
Репутация: 192 ±
Замечаний: 0% ±

Excel 2016 х 64
А ссылки идут потому что я как раз и копирую данные из второй книги в первые свободные столбцы,

тогда размерчик увеличить надо.
Насчет ошибки посмотрю сейчас


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com
 
Ответить
Сообщение
А ссылки идут потому что я как раз и копирую данные из второй книги в первые свободные столбцы,

тогда размерчик увеличить надо.
Насчет ошибки посмотрю сейчас

Автор - Udik
Дата добавления - 16.09.2017 в 17:32
Udik Дата: Суббота, 16.09.2017, 17:47 | Сообщение № 15
Группа: Друзья
Ранг: Старожил
Сообщений: 1588
Репутация: 192 ±
Замечаний: 0% ±

Excel 2016 х 64
Подправил.
[vba]
Код


With listeks
    Set rng1 = .Range(.Cells(1, 1), .Cells(Konez_eks, 28))
    arrTbl1 = rng1.Value '' загружаем лист из файла 1-0002.xlsx
End With
With listfns013
    Set rng1 = .Range(.Cells(1, 1), .Cells(Konez_fns013, 5))
    arrTbl2 = rng1.Value ''загружаем лист из файла 13.xlsx
End With
[/vba]
и путь до файлов сделал относительно текущего.
К сообщению приложен файл: 2972981.xlsm (28.6 Kb)


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com


Сообщение отредактировал Udik - Суббота, 16.09.2017, 17:57
 
Ответить
СообщениеПодправил.
[vba]
Код


With listeks
    Set rng1 = .Range(.Cells(1, 1), .Cells(Konez_eks, 28))
    arrTbl1 = rng1.Value '' загружаем лист из файла 1-0002.xlsx
End With
With listfns013
    Set rng1 = .Range(.Cells(1, 1), .Cells(Konez_fns013, 5))
    arrTbl2 = rng1.Value ''загружаем лист из файла 13.xlsx
End With
[/vba]
и путь до файлов сделал относительно текущего.

Автор - Udik
Дата добавления - 16.09.2017 в 17:47
Blasster88 Дата: Суббота, 16.09.2017, 18:25 | Сообщение № 16
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 1 ±
Замечаний: 0% ±

Excel 2007
Udik, Отлично, на одном файле отработал за 6 минут. Сейчас попробую добавить все файлы. Спасибо вам большое, вы мне очень помогли!!!
 
Ответить
СообщениеUdik, Отлично, на одном файле отработал за 6 минут. Сейчас попробую добавить все файлы. Спасибо вам большое, вы мне очень помогли!!!

Автор - Blasster88
Дата добавления - 16.09.2017 в 18:25
Blasster88 Дата: Суббота, 16.09.2017, 19:06 | Сообщение № 17
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 1 ±
Замечаний: 0% ±

Excel 2007
Udik, Еще маленький нюанс остался. А как мне вставлять данные из массива в другом формате? у меня просто номера счетов вставляются вот так:
4,07Е+19, а если менять формат то встают вот с нулями в конце 40802810107000000000
 
Ответить
СообщениеUdik, Еще маленький нюанс остался. А как мне вставлять данные из массива в другом формате? у меня просто номера счетов вставляются вот так:
4,07Е+19, а если менять формат то встают вот с нулями в конце 40802810107000000000

Автор - Blasster88
Дата добавления - 16.09.2017 в 19:06
Udik Дата: Суббота, 16.09.2017, 19:35 | Сообщение № 18
Группа: Друзья
Ранг: Старожил
Сообщений: 1588
Репутация: 192 ±
Замечаний: 0% ±

Excel 2016 х 64
ну надо столбец со счетом форматнуть под текст, тогда будет вставлять точно как в массиве. И посмотреть что там в ячейке находится.
Если сами не справитесь, заводите новую тему :)


вот вам барабан
яд 41001231307558 wm R419131876897
udik1968@gmail.com


Сообщение отредактировал Udik - Суббота, 16.09.2017, 19:36
 
Ответить
Сообщениену надо столбец со счетом форматнуть под текст, тогда будет вставлять точно как в массиве. И посмотреть что там в ячейке находится.
Если сами не справитесь, заводите новую тему :)

Автор - Udik
Дата добавления - 16.09.2017 в 19:35
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Оптимизация скорости работы макроса (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!