Da qualche parte nel Foglio chiamato Foglio 2 ho il seguente: Clicca per l'immagine
Utilizza la funzione TEXTJOIN per concatenare i valori nella colonna A. La stringa in B100 è la variabile S (vedi il codice).
Sto tentando di utilizzare questo come input per un metodo nella mia macro. Di seguito è riportato uno snippet di codice dal modulo:
Dim ListofSheets, WorkingSheet As Worksheet
Dim C0, C1 As Range
Dim S As String
Dim WholeRange As Range
Set ListofSheets = Sheets("Sheet2")
...
Set C0 = WorkingSheet.Range(PanelColumn & StartingRow & ":" & PanelColumn & lRow)
Set C1 = WorkingSheet.Range(LoadCaseColumn & StartingRow & ":" & LoadCaseColumn & lRow)
S = ListofSheets.Cells(100, 2).Value
Set WholeRange = Union(S)
WholeRange.Copy
End Sub
C0 e C1 sono calcolati nel codice e sono i seguenti intervalli:
C0= C7:C310
C1= D7:D310
Quando viene eseguito il codice precedente, viene generato un errore sulla riga Set WholeRange = Union(S)
con "Errore di compilazione: tipo non corrispondente"
Ho provato Set WholeRange = Union(C0, C1)
quale funziona con successo, ma non voglio usarlo perché in realtà ci sono più variabili che possono essere scelte.
La mia domanda è: perché la stringa può essere passata come parametro e come posso correggere il problema?
NB: Ho più di 2 intervalli nel codice che non è mostrato qui. Lo script decide quali intervalli utilizzare. Poiché è necessario immettere più di 2 intervalli, sto usando il Union
metodo anziché il Range
metodo
INDIRECT
è una funzione del foglio di lavoro. Penso che intendevi usare RANGE(S)
.
S
una stringa per rappresentare i nomi delle variabili. UNION
richiede almeno due argomenti di intervallo.
S
è C0,C1
- due argomenti. Il problema è che pensa che sia solo un argomento.
S
una stringa? Cosa succede se lo usiUnion(INDIRECT(S))
?