2016-11-28 422 views
0

我有几列数据与各种标题,我想根据他们的标题缩小和组织。现在我正在完成我的任务,方法是复制源表单上每个标题下的数据,在目标工作表上找到相同的标题,然后粘贴到新标题下。我的代码是:Excel VBA-与查找(Cell.Value)和格式问题

For Each Cell In NewData 'where NewData is the range with all of the headings 
    Range(Cell.Offset(1, 0), Cell.Offset(1, 0).End(xlDown)).Copy 
    Worksheets("Total").Activate 
    Worksheets("Total").Rows(2).Find(Cell.Value).End(xlDown).Offset(1, 0).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 
    On Error Resume Next 
'error handling skips data columns in sheet 1 that are not found in sheet 2 
Next Cell 

我有我的问题的两个例子:)

1。我的一些数据标题是“5/64”,“6/64”和“7/64”,它们在粘贴到Excel中时以日期格式返回。例如,Cell.Text返回“May-64”而不是“5/64”,而Cell.Value返回“5/1/1964”。这对我来说没什么问题,只要它始终如一,但我的子将数据从标题“5.5”输入到只应该是“5/64”的列中(或者因为我使用Cell.Value,“5 /1964分之1“ )。 2)。与第一个例子类似,我有两个数据栏“总蛋白”和“总蛋白(NIR)”,其中“总蛋白”数据粘贴在“总蛋白(NIR)”标题下。

对于这两个例子,我猜这是如何处理Cell.Value的问题。反而使用Cell.Text也行不通;这完全跳过了“May-64”标题。有小费吗?

+0

也许用'Cstr()'包装'Cell.Value'。所以'CStr(Cell.Value)'。 –

+0

对于数字2(也可能是数字1),您可能需要在'Find'函数中指定完全匹配:例如'Find(What:= Cell.Value,LookAt:= xlWhole)'。这应该确保“总蛋白(NIR)”匹配正确。 – Socii

回答

0

Socii有正确的想法 - 指定LookAt:= xlWhole修复了这个问题。感谢您的回复