2017-11-23 2 views
1

Ich versuche, Links in einer Kalkulationstabelle mit VBA zu ersetzen und bekomme einen Typenkonfliktfehler und kann den Grund nicht herausfinden.Typ Mismatch Vba Fehler

MyCode:

Dim aLinks as variant 
    Dim myPath, name as String 

aLinks = ActiveWorkbook.LinkSources 
myPath = "C:\" 
name = "test.xlsm" 

    ActiveWorkbook.ChangeLink Name:=aLinks, NewName:=myPath & name, Type:=xlExcelLinks 

Kennt jemand den Grund?

+1

myPath wird implizit als Variante deklariert. Es sollte Dim myPath als String sein, Name als String – QHarr

+0

Nein, es ist nicht, ich schneide nur alles dazwischen, um nur die Teile zu zeigen, die ich ausspreche. Mein Pfad, aLinks und Name sind alle zuvor angegeben – Luiza

+0

Fair genug. Ich habe es gerade bearbeitet. – Luiza

Antwort

2
aLinks = ActiveWorkbook.LinkSources 

Die Art des das wäre ein Variant() Array sein.

ActiveWorkbook.ChangeLink Name:=aLinks, NewName:=myPath & name, Type:=xlExcelLinks 

... und Sie ein Array in eine String nicht zwingen kann.

Sie müssen wahrscheinlich herausfinden, welches Element in diesem Array enthält den gewünschten Namen. Beispiel:

ActiveWorkbook.ChangeLink Name:=aLinks(1), NewName:=myPath & name, Type:=xlExcelLinks 
+0

Es gibt nur einen Namen im Array, da es nur einen Link gibt. Ich habe den gleichen Code ausprobiert, der die aLinks in eine Zelle einfügt, und es funktioniert gut. Der Änderungslinkcode ist derjenige, der falsch geht – Luiza

+0

Das gibt Ihnen immer noch ein Variantenarray - mit einem Element darin. –

+0

Und wie soll ich den Artikel angeben? – Luiza

1

aLinks muss als Zeichenfolge deklariert oder in eine Zeichenfolge umgewandelt werden Cstr(aLinks). Pfad sollte auch als String deklariert werden, aber da Sie ihn mit einem String verketten, wird er in einen String myPath & name umgewandelt.

Workbook.ChangeLink Method (Excel)

 
Name Required String The name of the Microsoft Excel or DDE/OLE link to be changed, as it was returned from the LinkSources method. 
NewName Required String The new name of the link. 
Type Optional XlLinkType The link type.