Just nu i M3-nätverket
Jump to content

Felmeddelande vi inläggaden av bild


PeterPAN

Recommended Posts

Hej,

 

Jag får samma felmeddelande som länken nedan ("Körfel nr: '1004',: Select-metoden i picture klassen misslyckades"). Koden som jag använder är i grunden en som jag fått från XL-Dennis hemsida.

 

//eforum.idg.se/viewmsg.asp?EntriesId=867937

 

Men jag vet vad mitt fel beror på, det är den bildfilen finns inte. Det som jag vill få in i min kod är en felhantering när en bild saknas. Alltså när det inte finns någon bild-fil så vill jag att den rutan skall lämnas tom.

 

Jag antar att det finns någon/några smarta personer som kan hjälpa mig med detta.

 

/Peter

 

 

[log]

Option Explicit

Sub View_Image_In_Cell()

  '© 2004 Alla rättigheter XL-Dennis

  Dim wsSheet As Worksheet

  Dim rnTarget, rnTarget2 As Range, rnPicture As Range

  Dim oPicture As Picture

  Dim stImage, BLAD, BILD1, BILD2, BILD3, BILD4, _
  STN1, STN2, STN3, STN4 As String

  Dim X As Integer

X = 24
BLAD = "Förblad"
STN1 = "Station 1"
STN2 = "Station 2"
STN3 = "Station 3"
STN4 = "Station 4"
BILD1 = Sheets(BLAD).Cells(27, 2).Text
BILD2 = Sheets(BLAD).Cells(28, 2).Text
BILD3 = Sheets(BLAD).Cells(29, 2).Text
BILD4 = Sheets(BLAD).Cells(30, 2).Text

Do While Sheets(BLAD).Cells(X, 1).Text <> ""
stImage = Sheets(BLAD).Cells(23, 1).Text & Sheets(BLAD).Cells(X, 1).Text

  Set wsSheet = ActiveSheet

   If X = 24 Or X = 25 Or X = 26 Then
       Worksheets(STN1).Activate
       Set wsSheet = ActiveSheet
   End If


   If X = 27 Or X = 28 Or X = 29 Or X = 30 Then
       Worksheets(STN2).Activate
       Set wsSheet = ActiveSheet
   End If

   If X = 31 Or X = 32 Or X = 33 Or X = 34 Then
       Worksheets(STN3).Activate
       Set wsSheet = ActiveSheet
   End If

   If X = 35 Or X = 36 Or X = 37 Or X = 38 Then
       Worksheets(STN4).Activate
       Set wsSheet = ActiveSheet
   End If


  With wsSheet
   If X = 27 Or X = 31 Or X = 35 Then
       Set rnTarget = .Range(BILD1)
   End If

   If X = 24 Or X = 28 Or X = 32 Or X = 36 Then
       Set rnTarget = .Range(BILD2)
   End If

   If X = 25 Or X = 29 Or X = 33 Or X = 37 Then
       Set rnTarget = .Range(BILD3)

   End If

   If X = 26 Or X = 30 Or X = 34 Or X = 38 Then
       Set rnTarget = .Range(BILD4)
   End If

     'Infogar bilden.
     Set oPicture = .Pictures.Insert(stImage)

  End With

  'Anpassar bildstorleken till den underliggande cellens storlek.

  With rnTarget

     oPicture.Height = .Height

     oPicture.Left = .Left

     oPicture.Top = .Top

     oPicture.Width = .Width

  End With


X = X + 1
Loop

End Sub

[/log]

 

Link to comment
Share on other sites

Om filen eventuellt inte finns är det väl enklast att undersöka om den finns innan du försöker infoga den?

Set fs = CreateObject("Scripting.FileSystemObject")
If  fs.FileExists(stImage)  Then ...

 

 

Alltid bättre att undvika fel än genera och fånga.

 

En liten not, variabeldeklaration enligt

Dim rnTarget, rnTarget2 As Range

ger att rnTarget är en Variant och rnTarget2 är en Range. Man måste deklarera vad varje variabel ska vara.

 

 

/T

 

Even when we know we´ll never find the answers, we have to keep on asking questions.

 

Link to comment
Share on other sites

Som vanligt löser du alla mina problem med bravur, Monshi..

 

Jag är imponerad, du borde skapa en liknade sida som XL-Dennis där du lägger ut alla små knep som du tipsar om...

 

Kan tipsa för andra som vi använda sig av detta tipset, att man måste även deklarera att fs variabel.

 

[color="#0000ff"]Dim[/color] fs As Object

 

Ha en trevlig helg...

/Peter

 

[inlägget ändrat 2006-11-10 15:05:34 av PeterPAN]

Link to comment
Share on other sites

Deklarera bör man alltid. Om man skrivit Option Explicit i början filen, vilket man borde, måste man deklarera variablerna.

 

Jag är imponerad, du borde skapa en liknade sida som XL-Dennis där du lägger ut alla små knep som du tipsar om...

mmh, nja, nä. Inte nu. Men tack för de fina orden och poängen.

 

 

/T

 

Even when we know we´ll never find the answers, we have to keep on asking questions.

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...