iT邦幫忙

0

請問EXCEL VBA 要尋找字串後移動到指定位置,要重覆判斷。

  • 分享至 

  • xImage

請問各位先進
我想在EXCEL 工作表上執行
找出字串"I"或"E"開頭的文字 (剪下A2整行),
然後整橫列移到下一橫 G3-G9,都貼上,
找出字串"I"或"E"開頭的文字 (剪下A10整行),
然後整橫列移到下一橫 G11-G15,都貼上,
找出字串"I"或"E"開頭的文字 (剪下A16整行),
然後整橫列移到下一橫 G17-G25,都貼上,
一直到空白停下來。
這不適合VLOOKUP,怎麼辦?

https://ithelp.ithome.com.tw/upload/images/20211223/20145067pfpblL3Ita.png

下圖為結果圖
https://ithelp.ithome.com.tw/upload/images/20211223/20145067cdsNB8jsYb.png

請貼兩張圖
第一張是原始資料
第二張是執行結果(先用手動處理)
因為上面的文字描述有點令人混淆
1
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
1
海綿寶寶
iT邦大神 1 級 ‧ 2021-12-23 10:37:47

我只會 VBA
(可以等高手用 SUMPRODUCT/INDEX/MATCH 解答)

大致如下

寫個迴圈 i 從 2..25
  若 Ai有資料就記錄列索引值 r (eg.2,10,16)
  若 Ai沒資料就複製 Ar..Ir 到 Gi 貼上

原始資料
https://ithelp.ithome.com.tw/upload/images/20211223/20001787yUMXTvihE7.png
執行結果
https://ithelp.ithome.com.tw/upload/images/20211223/20001787UIYF0EnlVj.png

看更多先前的回應...收起先前的回應...

請問海大神付費設計VBA在一個CommandButton上可行嗎?

當然可行

請收GMAIL.

比你上面寫的要多一點處理邏輯
完成後再 update

ccenjor iT邦大師 9 級 ‧ 2021-12-23 19:53:54 檢舉

海大,那個範例檔可以MAIL給我參考嗎?謝謝!

LEEJITHOME 請收 GMail

1
rogeryao
iT邦超人 7 級 ‧ 2021-12-23 15:33:14

請問這個功能在VBA是哪一個屬性OR方法?

rogeryao iT邦超人 7 級 ‧ 2021-12-23 18:20:06 檢舉

錄製巨集試試吧

0
blanksoul12
iT邦研究生 5 級 ‧ 2021-12-24 14:23:17

自己再改改吧

Sub test()
Dim brr
arr = Range("a2:o" & [c1048576].End(xlUp).Row)
For i = 1 To UBound(arr)
    If arr(i, 1) <> "" Then
        head_er = i
        count_header = count_header + 1
    Else
        x = 1
        For y = 7 To 15
            arr(i, y) = arr(head_er, x)
            x = x + 1
        Next
    End If
Next

x = 1
ReDim brr(1 To UBound(arr) - count_header, 1 To 15)
For i = 1 To UBound(arr)
    If arr(i, 1) = "" Then
        For y = 1 To 15
            brr(x, y) = arr(i, y)
        Next
        x = x + 1
    End If
Next

[c1048576].End(xlUp).Offset(3, -2).Resize(UBound(brr, 1), UBound(brr, 2)) = brr

End Sub

這個是保留原有資料的做法,因為也不太建議覆寫原資料.建議答案可放另一張工作表比較好.

我要發表回答

立即登入回答