2013-12-10 43 views
0

好吧,我已經用盡了我對Excel VBA編碼的微弱知識,並且一直無法找出這個解決方案。試圖找到範圍內字符串的最大值

我有一個單列值範圍作爲表的一部分。在此列中的值是連續串的羣體,如:

ABC-001 
ABC-002 
XYZ-001 
EFDDGE-001 
ABC-003 
XYZ-002 
ABC-004 

我需要做的是下一行是在什麼組是下一個價值分配一個值。

實施例:

  1. 如果下一項目是「ABC」項,我需要在列中的值是ABC-005
  2. 如果下一項目是「EFDDGE」項,我所需要的在該列的值是EFDDGE-002

在列中的值是按升序排列,按組(即XYZ-005絕不會XYZ-003之前)。

我一直在用Range.Find方法,但我似乎無法讓它正常工作。

下面是表的樣品部分的屏幕截圖: (編輯:顯然是因爲我的「名聲不是10或更高,我不能發表圖片)

嘗試圖片此係列列:

[下一頁ID] [項目編號] [說明] [配置] [原創] [最後] [重量]

在回答一些問題: 是的,我確實想在表中下一個可用行中添加項目ID。

根據「處理」值,「項目ID」的組部分由與「原始」或「最終」列中的條目相關的「位置ID」表中的VLookup確定,具體取決於「處置」值。

從上面的屏幕截圖中可以看到,我實際上設法實現了一種確定「Next ID」的可行方法,然後讓我的VBA userform代碼複製該值並將其粘貼到相鄰的「Item ID」柱。它有效,但它很醜。這裏是膨脹公式(深呼吸):

= IF(NOT(ISERROR(CONCATENATE(VLOOKUP(IF(NOT(ISBLANK(G13)),G13,F13),LocationID,2,FALSE) - 「,TEXT(SUMPRODUCT((ItemID> VLOOKUP(IF(NOT(ISBLANK(G13)),G13,F13),LocationID,2,FALSE))(ItemID < = CONCATENATE(VLOOKUP(IF(NOT(ISBLANK(G13 )),G13,F13),LocationID,2,FALSE), 「 - 999」)))+ 1, 「000」)))),(CONCATENATE(VLOOKUP(IF(NOT(ISBLANK(G13)),G13, (ItemID> VLOOKUP(IF(NOT(ISBLANK(G13)),G13,F13),LocationID,2,FALSE)(ItemID < = F13),LocationID,2,FALSE) CONCATENATE(VLOOKUP(IF(NOT(ISBLANK(G13)),G13,F13),LocationID,2,FALSE),「 - 999」)))+ 1,「000」))),「」)

所以......我強迫這個工作,但我在想(跳)用戶表單中的一小部分VBA代碼可以避免使用這種混亂的方法。

順便說一句,多虧了你們所有人的關注,並提出了相關的問題並提供了可能的解決方案。 - 比爾

+1

我認爲你不需要這個vba。這是excel中的一個自動函數。檢查了這http://www.youtube.com/watch?v=CePq6bnC5oM –

+0

@ bto.rdz這不適用於E2007(假設它根本不工作,因爲數據不是嚴格的數字)。 –

+1

你怎麼知道要找哪個組? – tigeravatar

回答

3

我需要做的是下一行

很肯定你的意思是未來在分配一個值。假設,嘗試

=LEFT(A1,FIND("-",A1))&TEXT(VALUE(MID(A1,FIND("-",A1)+1,3))+1,"000") 

它看起來很凌亂。讓我們來打破它一點:

=LEFT(A1,FIND("-",A1)) ; isolates the non-numerical portion 
=VALUE(MID(A1,FIND("-",A1)+1,3)) ; isolates the numerical portion, converts text to number 

剩下的代碼連接兩片,加入一到我們分離的數量,將其轉化爲文本,同時確保3位數字格式將被保留。

如果你真的需要VBA,我們可以去那裏。技術是一樣的。

+0

+1 andy - 這將在沒有VALUE函數的情況下正常工作 - 公式中的+1用於隱含地將MID的文本格式化結果與編號.....在任何情況下,TEXT函數都會愉快地採用文本 - 格式化的數字,並像處理一個實際的數字一樣處理它 –

+0

我認爲問題在詢問下一行時是正確的,他特別聲明瞭它的數據在一個列中,似乎他只是試圖填滿列,逐行。 – user2140261

+0

仔細看,你可能是對的,在這種情況下,我的答案失敗。如果是這種情況,我會刪除不適當的內容。 –

相關問題