彰化一整天的論壇

 找回密碼
 立即註冊
搜索
查看: 219|回復: 9

是否能依關鍵字進行資料剖析呢?

[複製鏈接]
發表於 2017-8-24 11:38:41 | 顯示全部樓層 |閱讀模式
本帖最後由 jenny830602 於 2017-8-24 12:09 編輯

不好意思又有問題發問,
對特定欄位進行資料剖析:分頁"Copy3" 遇到需要資料剖析的狀況,需要將 A-高雄 拆分成兩欄。
目前已經用錄製巨集的方式作出了資料剖析,
但因為只需要剖析有"A"的部分,所以後續的ˊ部分不知道該如何操作,
初步的想法是用判斷式下去弄(或是有其他方法也可以),但對VBA不熟,還是有點沒有頭緒…

未命名.png



再麻煩了,感恩!








01-test (2).xlsm

40.14 KB, 下載次數: 17

回復

使用道具 舉報

發表於 2017-8-24 14:48:30 | 顯示全部樓層
本帖最後由 imingho 於 2017-8-24 14:51 編輯
jenny830602 發表於 2017-8-24 14:31
我希望能將開頭是"A"的供應商地區,另外分割到另一格~
split_20170824.jpg

1.執行結果

用迴圈及split字串切割指令.
  1. Private Sub CommandButton1_Click()

  2.     Dim i As Integer
  3.     Dim temp As Variant
  4.    
  5.     i = 2
  6.     While Cells(i, 2).Value <> ""
  7.         temp = Split(Cells(i, 2).Value, "-")
  8.         If temp(0) = "A" Then
  9.             Cells(i, 3).Value = temp(1)
  10.         End If
  11.         i = i + 1
  12.     Wend
  13.    
  14. End Sub
複製代碼

01-test_20170824.xlsm

37.27 KB, 下載次數: 1

售價: 1 金錢  [記錄]

回復 支持 1 反對 0

使用道具 舉報

發表於 2017-8-24 13:32:22 | 顯示全部樓層
您好,
      不太清楚.可以貼一張處理後的圖嗎?
回復 支持 反對

使用道具 舉報

 樓主| 發表於 2017-8-24 14:31:36 | 顯示全部樓層
未命名.png

我希望能將開頭是"A"的供應商地區,另外分割到另一格~
回復 支持 反對

使用道具 舉報

 樓主| 發表於 2017-8-25 11:08:43 | 顯示全部樓層
本帖最後由 jenny830602 於 2017-8-25 16:02 編輯
  1. Private Sub CommandButton1_Click()
  2. ' Copy3 資料剖析

  3.     Dim i As Integer
  4.     Dim temp As Variant
  5.    
  6.     i = 2
  7.     While Cells(i, 2).Value <> ""
  8.         temp = Split(Cells(i, 2).Value, "-")
  9.         If temp(0) = "A" Then
  10.             Cells(i, 3).Value = temp(1)
  11.         End If
  12.         i = i + 1
  13.     Wend
  14.    
  15. ' 接著Copy4 資料剖析(同一按鈕)
  16. Sheets("Copy4").Activate
  17.      Dim a As Integer
  18.     Dim temp1 As Variant
  19.    
  20.     a = 2
  21.     While Sheets("Copy4").Cells(a, 2).Value <> ""
  22.         temp1 = Split(Sheets("Copy4").Cells(a, 2).Value, "-")
  23.         If temp1(0) = "A" Then
  24.             Sheets("Copy4").Cells(a, 3).Value = temp1(1)
  25.         End If
  26.         a = a + 1
  27.     Wend
  28.   
  29.   Sheets("Copy2").Activate
  30.      Dim b As Integer
  31.     Dim temp2 As Variant
  32.    
  33.     b = 2
  34.     While Sheets("Copy2").Cells(b, 2).Value <> ""
  35.         temp1 = Split(Sheets("Copy2").Cells(b, 2).Value, "-")
  36.         If temp1(0) = "A" Then
  37.             Sheets("Copy2").Cells(b, 3).Value = temp1(1)
  38.         End If
  39.         b = b + 1
  40.     Wend

  41. End Sub
複製代碼


非常感謝您的協助,但目前還有遇到一個問題,因為分頁有非常多,需要以同一個按鈕進行跨分頁的資料剖析。
有試圖在程式碼前加上Sheets(Copy4)及(Copy2),也改了宣告的變數,但似乎還是沒辦法成功切換並進行資料剖析..
會有錯誤的狀況發生

01-test_20170825.xlsm

43.56 KB, 下載次數: 15

回復 支持 反對

使用道具 舉報

 樓主| 發表於 2017-8-25 12:35:06 | 顯示全部樓層
本帖最後由 jenny830602 於 2017-8-25 16:02 編輯

再麻煩了,謝謝您!
回復 支持 反對

使用道具 舉報

發表於 2017-8-25 17:33:22 | 顯示全部樓層

您好,
     我執行您的程式沒有錯誤出現.
excel_split_string_01.jpg

1.我看您程式寫kkbox但是您的資料中沒有,當然不會解析.

回復 支持 反對

使用道具 舉報

 樓主| 發表於 2017-8-25 17:59:43 | 顯示全部樓層
啊...可能是我聊天時複製的文字沒有被正確的蓋過去...
個人失誤,抱歉...不夠謹慎
回復 支持 反對

使用道具 舉報

發表於 2017-8-25 18:15:00 | 顯示全部樓層
jenny830602 發表於 2017-8-25 17:59
啊...可能是我聊天時複製的文字沒有被正確的蓋過去...
個人失誤,抱歉...不夠謹慎 ...

因為您有一筆只有A,沒有加任何減號,所以要在加一個判斷就可以.
excel_split_string_02.jpg

1.因為有一筆只有A

excel_split_string_03.jpg

2.程式加上一行判斷有2個陣列才顯示

  1. Private Sub CommandButton1_Click()
  2. ' Copy3 資料剖析

  3.     Dim i As Integer
  4.     Dim temp As Variant
  5.    
  6.     i = 2
  7.     While Cells(i, 2).Value <> ""
  8.         temp = Split(Cells(i, 2).Value, "-")
  9.         If temp(0) = "A" Then
  10.             Cells(i, 3).Value = temp(1)
  11.         End If
  12.         i = i + 1
  13.     Wend
  14.    
  15. ' 接著Copy4 資料剖析(同一按鈕)
  16. Sheets("Copy4").Activate
  17.      Dim a As Integer
  18.     Dim temp1 As Variant
  19.    
  20.     a = 2
  21.     While Sheets("Copy4").Cells(a, 2).Value <> ""
  22.         temp1 = Split(Sheets("Copy4").Cells(a, 2).Value, "-")
  23.         If temp1(0) = "A" Then
  24.             Sheets("Copy4").Cells(a, 3).Value = temp1(1)
  25.         End If
  26.         a = a + 1
  27.     Wend
  28.   
  29.   Sheets("Copy2").Activate
  30.      Dim b As Integer
  31.     Dim temp2 As Variant
  32.    
  33.     b = 2
  34.     While Sheets("Copy2").Cells(b, 2).Value <> ""
  35.         temp1 = Split(Sheets("Copy2").Cells(b, 2).Value, "-")
  36.         If temp1(0) = "A" And UBound(temp1) = 1 Then
  37.             Sheets("Copy2").Cells(b, 3).Value = temp1(1)
  38.         End If
  39.         b = b + 1
  40.     Wend

  41. End Sub
複製代碼


01-test_20170825.xlsm

42.01 KB, 下載次數: 0

售價: 1 金錢  [記錄]  [購買]

回復 支持 反對

使用道具 舉報

 樓主| 發表於 2017-9-1 15:32:28 | 顯示全部樓層
本帖最後由 jenny830602 於 2017-9-1 16:05 編輯

您好,真的非常感謝您,這部分的問題已經解決了 另有一個2016向下相容的問題,我移到2016的板詢問,謝謝您!
回復 支持 反對

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

 ㄚ母滴雞湯
 員林香純滴雞精

Archiver|手機版|小黑屋|彰化一整天的論壇(Excel,Office)  |网站地图

GMT+8, 2018-1-17 01:38 , Processed in 0.043439 second(s), 13 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表