我一直在研究抓取給定範圍的格式的格式編碼器,然後提供將該格式粘貼到另一個給定範圍(基本上模擬「粘貼格式」,但可存儲)的功能。我試圖設置一個範圍的邊界對象(在設置例程中),但似乎邊界對象是通過值傳遞的,而不是引用?Excel 2010中的邊框對象,通過引用傳遞?
我可以得到Borders對象的當前值,但是如果我嘗試爲它設置任何值,它會被忽略(甚至沒有「只讀」錯誤)。下面是我的代碼片段:
Sub SetBorders(sInput As String, ByRef Target As Borders)
Dim resultPart() As String
'Border indexes go from 5 to 12
For i = 5 To 12
'Set resultPart
resultPart = Split(Split(sInput, CharEOList)(i - 5), CharEORecord)
If Len(resultPart(0)) > 0 Then
Target(i).ColorIndex = CLng(resultPart(0))
...
我在做什麼錯?我應該使用一個更高的Range對象並深入其內部的Borders對象嗎?
是的,傳遞Range對象而不是嘗試傳遞邊框會更簡單。也許你可以更新你的問題,包括你目前如何調用這個子? –
它是一個較大例程的內部函數,這就是爲什麼參數以這種方式傳遞的原因。它被這樣調用: Sub SetCellFormat(sh As Worksheet,the Range As Range,format As String) ...如果UBound(s)> = 3那麼如果Len(s(3))> 0那麼SetBorders s( 3),theRange.Borders – Tsaukpaetra