2017-10-16 107 views
-2

我有一個字典根據我的工作表的列標題填充。某些標題有換行符。有沒有辦法修改我的代碼,我可以查詢這些值的字典?查詢字典哪裏有換行符?

我試圖插入值之間的 「vbnewline」,並且它是不成功

Sheets(UnPref).Range("A" & y).Value = Sheets("New Item Entry").Cells(z, hedDict("REQUESTOR")).Value 
Sheets(UnPref).Range("B" & y).Value = Sheets("New Item Entry").Cells(z, hedDict("ORG")).Value 
Sheets(UnPref).Range("C" & y).Value = Sheets("New Item Entry").Cells(z, hedDict("SHIP TO LOCATION")).Value 
Sheets(UnPref).Range("D" & y).Value = Sheets("New Item Entry").Cells(z, hedDict("MRI NUMBER")).Value 
Sheets(UnPref).Range("E" & y).Value = Sheets("New Item Entry").Cells(z, hedDict("ITEM IDENTIFIER" & vbNewLine & "USE UPPER CASE" & vbNewLine & "MANDATORY")).Value 
+0

編輯你的問題,並顯示一些測試數據和代碼 –

+0

我已經添加了示例代碼,我希望它更清楚? 基本上,例如標題是: 「項標識符 」使用大寫 「必 都在同一個小區,我試圖引用 – Ryan

+0

不太......是你肯定頭部包含vbCrLf(vbNewLine )或只是vbLf或vbCr?您是否嘗試過調試字典並檢查實際的密鑰? –

回答

0

vbNewLineChr(13) & Chr(10)。即vbCr & vbLf,而單元內的換行字符僅爲Chr(10),即vbLf。用空格從列標題構建你的字典

要麼更換vbLf(這通常會更有效率,那麼你可以很容易地引用一個元素如"ITEM IDENTIFIER MANDATORY"):

hedDict(Replace(theColumnHeader, vbLf, " ", Compare:=VbCompareMethod.vbBinaryCompare)) = theValue

或者:將代碼示例中的vbNewLine替換爲vbLf

+1

「單元格內的換行符僅爲Chr(10)」 - 僅當使用* Alt + Enter *手動輸入時纔是。如果它是使用'vbNewLine'由VBA代碼編寫的,則它包含'vbNewLine'。 –

+0

我認爲值得澄清'vbNewLine'是爲*平臺專用的 - 即它與Windows上的'vbCrLf'相同,但不是在Mac上。 –