2017-10-16 46 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上。 –