2015-07-20 74 views
0

我在Excel中管理庫存。 我有2列一起工作:VBA將單元格值複製到另一個單元格文本字符串中

  1. 產品名稱
  2. 包裝信息

的表看起來像這樣

product name    packaging info 
BLISE FACEWASH   50GM 
IVREA CREAM    60GM 
IVREA CREAM    30GM 
IVREA SHAMPOO   30ML 

我想在包裝信息到添加值產品名稱, 但我想在產品名稱的最後一個單詞之前添加它。

期望的結果:

product name     packaging info 
BLISE 50GM FACEWASH   50GM 
IVREA 60GM CREAM    60GM 
IVREA 30GM CREAM    30GM 
IVREA 30ML SHAMPOO   30ML 

我試圖串連,但它並沒有幫助,使之變得更復雜了。

我一直在嘗試這個宏,因爲它似乎可行。在第2列

  • 移動到左單元
    1. 複製值跳過從右邊1個字(Ctrl鍵 + 箭頭)
    2. 糊值
    3. 添加空格
    4. 轉到下一行

    產品名稱中的所有單元格都具有相同的值。我哪裏出錯了?

    如果不是宏,那麼最簡單的方法是什麼?

    順便說一句:該工作表包含10列,4500+行。

  • 回答

    0

    VBA;假設標題在A1/B1:

    Sub MergeCols 
        Dim cell As Range, pos As Long 
    
        Set cell = Range("A2") 
    
        Do Until cell.Value = "" 
         pos = InStrRev(cell.Value, " ") 
         If (pos > 0) Then 
          cell.Value = Left$(cell.Value, pos) & cell.Offset(0, 1).Value & Mid$(cell.Value, pos) 
         Else 
          cell.Value = cell.Value & " " & cell.Offset(0, 1).Value 
         End If 
         Set cell = cell.Offset(1, 0) 
        Loop 
    End Sub 
    
    +0

    我是新來的這東西。你能幫助我運行腳本嗎? 我創建了一個宏。將代碼粘貼到位。當我運行它我得到 編譯錯誤 無效的外部程序。 – Ahmed

    +0

    它需要在一個'Sub'(如上所編輯) –

    +0

    現在的作品。但不是確切的結果。如果產品名稱只包含2個單詞,它就可以完美工作。如果它更多,比如3或4或5,則粘貼的值不在最後一個單詞之前。它是中間的某個位置 例如 FOLICA 100ML HAIR酊SOLUTION 地方,因爲它本來應該 FOLICA HAIR酊100ML解決方案 – Ahmed

    相關問題