Друзья, прошу вашей помощи! Функция(макрос) вставляет картинку по заданным значения Cell-ячека куда вставлять и Pic-путь к файлу. Проблема в том, что по каким то причинам функция не подгоняет размер картинки под ячейку. Помогите разобраться.
[vba]
Код
Function vsunut(ByRef cell As Range, ByVal Pic As String) As Boolean
On Error Resume Next: Err.Clear Dim ph As Picture: Set ph = cell.Parent.Pictures.Insert(Pic) vs = Err.Number = 0 ph.Top = cell.Top: ph.Left = cell.Left: k = ph.Width / ph.Height ph.Width = cell.Width: ph.Height = ph.Width / k cell.EntireRow.RowHeight = ph.Height
End Function
[/vba]
Друзья, прошу вашей помощи! Функция(макрос) вставляет картинку по заданным значения Cell-ячека куда вставлять и Pic-путь к файлу. Проблема в том, что по каким то причинам функция не подгоняет размер картинки под ячейку. Помогите разобраться.
[vba]
Код
Function vsunut(ByRef cell As Range, ByVal Pic As String) As Boolean
On Error Resume Next: Err.Clear Dim ph As Picture: Set ph = cell.Parent.Pictures.Insert(Pic) vs = Err.Number = 0 ph.Top = cell.Top: ph.Left = cell.Left: k = ph.Width / ph.Height ph.Width = cell.Width: ph.Height = ph.Width / k cell.EntireRow.RowHeight = ph.Height
Добрый день. Затрудняюсь ответить почему функция не изменяет высоту строки, но при обработке процедурой с циклом, все ОК [vba]
Код
Sub vsunut() For r = 2 To Cells(Rows.Count, 2).End(xlUp).Row 'добавил '------------ On Error Resume Next: Err.Clear Set cell = Cells(r, 1) 'добавил Pic = Cells(r, 2) 'добавил Dim ph As Picture: Set ph = cell.Parent.Pictures.Insert(Pic) vs = Err.Number = 0 ph.Top = cell.Top: ph.Left = cell.Left: k = ph.Width / ph.Height ph.Width = cell.Width ph.Height = ph.Width / k cell.EntireRow.RowHeight = ph.Height ph.Placement = xlMoveAndSize 'перенес '------------ Next r 'добавил End Sub
[/vba]
Добрый день. Затрудняюсь ответить почему функция не изменяет высоту строки, но при обработке процедурой с циклом, все ОК [vba]
Код
Sub vsunut() For r = 2 To Cells(Rows.Count, 2).End(xlUp).Row 'добавил '------------ On Error Resume Next: Err.Clear Set cell = Cells(r, 1) 'добавил Pic = Cells(r, 2) 'добавил Dim ph As Picture: Set ph = cell.Parent.Pictures.Insert(Pic) vs = Err.Number = 0 ph.Top = cell.Top: ph.Left = cell.Left: k = ph.Width / ph.Height ph.Width = cell.Width ph.Height = ph.Width / k cell.EntireRow.RowHeight = ph.Height ph.Placement = xlMoveAndSize 'перенес '------------ Next r 'добавил End Sub
Самое главное, что необходимо усвоить - функция пользователя: не может изменять значения других ячеек (с небольшими недокументированными исключениями) не может изменять форматы ячеек либо присваивать форматы (с небольшими недокументированными исключениями) может возвращать результат только в ту ячейку, в которой записана сама функция
Самое главное, что необходимо усвоить - функция пользователя: не может изменять значения других ячеек (с небольшими недокументированными исключениями) не может изменять форматы ячеек либо присваивать форматы (с небольшими недокументированными исключениями) может возвращать результат только в ту ячейку, в которой записана сама функция
Manyasha, Высота строки не относится к форматам, и значения других ячеек ведь не меняем. А есть возможность внутри UDF узнать в какую ячейку ее ввели, типа Me.address? так для интереса по тестировать.
Manyasha, Высота строки не относится к форматам, и значения других ячеек ведь не меняем. А есть возможность внутри UDF узнать в какую ячейку ее ввели, типа Me.address? так для интереса по тестировать.sboy
sboy, возникает проблема с фото. Часть фото отрабатывается корректно, а часть ведет себя не предсказуемо. Обратите внимание на эту ссылку с фото "https://ta.fly7.ru/pics/f0f6c03b-bb84-11e6-9209-00155d63110f.jpg", процедура не отрабатывает корректно. Можете разъяснить почему? Спасибо. PS таких "фото" порядка 10% из выборки 20 тыс.
sboy, возникает проблема с фото. Часть фото отрабатывается корректно, а часть ведет себя не предсказуемо. Обратите внимание на эту ссылку с фото "https://ta.fly7.ru/pics/f0f6c03b-bb84-11e6-9209-00155d63110f.jpg", процедура не отрабатывает корректно. Можете разъяснить почему? Спасибо. PS таких "фото" порядка 10% из выборки 20 тыс.baxetle