2016-11-28 23 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修復了這個問題。感謝您的回覆