2013-07-03 4 views
0

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

Итак, небольшая проблема, с которой я столкнулся, заключается в том, что у меня очень длинная электронная таблица Excel со многими разными идентификаторами или номерами, которые вы хотите назвать. Из этих идентификаторов я создаю настраиваемую ссылку, которая требует от них ссылки на конкретное изображение, которое затем вставляется в конкретную ячейку в этой таблице. Обратите внимание, что мне действительно нужен этот код, поэтому таблица составляет около 9300 строк/строк. Проблема заключается в том, что не каждый идентификатор имеет прикрепленное к нему изображение, а это означает, что некоторые ссылки не работают (изображения нет, но также нет текста в основном пустой страницы). Есть ли способ, которым я могу просто позволить коду проходить через него, чтобы он игнорировал генерируемую ошибку 1004, которая в основном всегда говорит мне, что он не может найти что-то и остановится в этот момент.

Я большой нуб в VBA, поэтому, пожалуйста, когда ответ не используется для сложного языка. Я буду вставлять код ниже, однако ссылка является конфиденциальной, поэтому я заменил ссылку на ссылку или что-то в этом роде. Я попробовал несколько методов On Error, но ошибка снова возникла, или Excel разбился, но вот рабочий код без каких-либо изменений для удаления этой ошибки. Заранее благодарим за помощь.

Sub Test() 

    I = 0 

    For I = 5 To 9373 

     If Tabelle2.Cells(I, 9) = "bekannt" Then 
      Call GetShapeFromWeb("Part 1 of the link" & Tabelle2.Cells(I, 10).Value & "Part 2 of the link", Tabelle2.Cells(I, 13)) 
     End If 

    Next I 

End Sub 

Sub GetShapeFromWeb(strShpUrl As String, rngTarget As Range) 
    Dim shp As Shape 

    With rngTarget 
     With .Parent 
       .Pictures.Insert strShpUrl 'Error Occurs here 
       Set shp = .Shapes(.Shapes.count) 
      End With 
       shp.Left = .Left 
       shp.Top = .Top 
     End With 

    Set shp = Nothing 

End Sub 

Одна последней вещь, чтобы заметить, некоторые из слов являются немецкими, из-за меня быть немецким и работать с немецкими переменными, или ссылками, или электронных таблицами. И я использую excel 2007. Ошибка возникает в следующей строке «.Pictures.Insert strShpUrl», потому что она не может найти изображение для вставки.

Thansk много. С наилучшими пожеланиями Крис

// EDIT Одна идея, я мог бы, что я не знаю, если это возможно, но страница она направлена, когда изображение не там отображается следующая информация «Не удается найти/part/of/thelink/" Возможно ли использовать код, чтобы увидеть, отображается ли это сообщение, и, возможно, проверить это? Если да, то как это будет работать? :) Может быть, он может быть добавлен в оператор if, который уже тестирует эту подзадачу.

// EDIT У кого-нибудь есть идея? : S Возможно, что я написал выше в редактировании, мог бы работать? : S Можно ли проверить, что msgbox отображает что-то, но наоборот, поэтому, если msgbox не соответствует следующим образом, выполните следующие действия. Если бы это сработало, это было бы здорово! : S Или, может быть, вместо того, чтобы пытаться использовать команды on error, пытающиеся выполнить его с помощью оператора if в пределах GetShapeFromWeb? Любая помощь приветствуется.

+0

точка линии, где происходит ваш '1004 error' .. вы берете эти картинки из Интернета (как предложить 'имя переменной strShpUrl ') или с вашей локальной машины? –

+0

Это взято из онлайн-ссылки, поэтому ничего локального, но я не могу показать ссылку ее довольно конфиденциальной или более конфиденциальной. Но это всего лишь общая ссылка, так что часть 1 подобна этому/что-то/что-то /, тогда здесь стоит id frmo excel sheet, а после этого появляется еще одна вещь с буквой и несколькими буквами. Это для ссылки. – user2546415

ответ

0

Это должно сработать. Однако вы написали, что вы пробовали несколько On Error Methods безуспешно ... что это для вас?

Sub GetShapeFromWeb(strShpUrl As String, rngTarget As Range) 
    Dim shp As Shape 
    Dim Er As Long: Er = 0 
    On Error GoTo gswError 

    With rngTarget 
     With .Parent 
      .Pictures.Insert strShpUrl 
      If Er <> 0 Then Exit Sub 
      Set shp = .Shapes(.Shapes.Count) 
     End With 
     shp.Left = .Left 
     shp.Top = .Top 
    End With 

    Set shp = Nothing 
    Exit Sub 
gswError: 
    Er = Err 
    Resume Next 
End Sub 
+0

Как и многие другие сообщения об ошибках, я пробовал, что по какой-то причине он вырывает программу. Таким образом, он все еще загружается в фоновом режиме.Но все равно спасибо за tipp, я просто не знаю, почему почти любой код «по ошибке» вылетает из программы. Если у вас есть какие-то дальнейшие идеи, я был бы признателен, если бы вы могли опубликовать их :). – user2546415

0

вы пробовали на суб GetShapeFromWeb, размещая в заявлении об ошибке на этом пути:

Sub GetShapeFromWeb(strShpUrl As String, rngTarget As Range) 
Dim shp As Shape 

On Error GoTo Err1 'inserting a picture from a blank link will cause an error... thus... 

With rngTarget 
    With .Parent 
      .Pictures.Insert strShpUrl 
      Set shp = .Shapes(.Shapes.Count) 
     End With 
      shp.Left = .Left 
      shp.Top = .Top 
    End With 

Err1: '...sidestep 

Set shp = Nothing 

End Sub 
+0

Как и код ниже, к сожалению, программа перестает работать. Должен бросить это сейчас повезло, что я сохранил предыдущий: D. Еще большое спасибо за типп! :) Я также продолжу попытку найти решение, если найду то, что я опубликую здесь. – user2546415

+0

сделал это заморозить? возможно, он все еще был занят запуском кода. Если есть много ссылок, это может занять некоторое время. – Alexandre

+0

Нет, на самом деле он разбился, я обычно позволяю ему работать довольно долго, также делал это с этим образцом (около 5 минут), но ничего не меняется, и вы знаете, когда нажимаете на него, он становится как greyed/whited out. Я снова запустил обе записи, чтобы убедиться. (возможно, это то, что я буду держать вас в курсе) – user2546415

Смежные вопросы