iT邦幫忙

0

想請教一下VBA 如何設定 依照欄判斷給我想要的值在某欄

  • 分享至 

  • xImage

在Excel裡面
我想在AM欄裡去判斷AM2、AM3、AM4…等等資料
裡面可能會有所謂的7-11、蝦皮、全家等資料
假設 AM2判讀到7-11時在AK2 給予 "七1" 下次在AM欄判讀到時給 "七2" (依照AM裡面
不同的商家給不同的代碼)
小弟有試過更改一些宣告 但始終搞不懂

參考的程式語言在下列這邊
end_col = Rows(3).Find("").Column - 1 (這個似乎能找出第3列有幾個)
小弟想說更改成找出最末列
end_col = Columns(39).Find("").Rows - 1 (總是無法計算出第39欄有多少個東西)
請問有大神能救救我嗎
(沒學過程式語言請鞭小力一點QQ)

看更多先前的討論...收起先前的討論...
froce iT邦大師 1 級 ‧ 2023-08-30 16:47:45 檢舉
你是要算小七出現的次數?
Arance iT邦新手 4 級 ‧ 2023-08-30 16:51:21 檢舉
有點不是很確定這邊的意思
但 "end_rows = Column(39).Find("").Rows - 1 "你說總是錯誤的這塊
column後面應該要加s
ian820409 iT邦新手 5 級 ‧ 2023-08-30 17:00:57 檢舉
是想讓巨集自動幫我算出小七、全家、或是其他商家出現的次數 (會出現代號+遞增的數字)
我自己微調成這樣 但是他好像沒辦法幫我判定迴圈的次數
Dim str_col As Integer
Dim end_col As Integer

Dim i As Integer
Dim j As Integer
Dim k As Integer


end_col = Columns(39).Find("").Rows
(但這邊好像沒辦法幫我算出39欄有多少東西)

For str_col = 1 To end_col

If Cells(str_col, 39) = "7-ELEVEN" Then
i = i + 1
Cells(str_col, 37) = "七" & i

ElseIf Cells(str_col, 39) = "蝦皮店到店" Then
j = j + 1
Cells(str_col, 37) = "S" & j

ElseIf Cells(str_col, 39) = "OK Mart" Then
k = k + 1
Cells(str_col, 37) = "OK" & k

End If

Next
froce iT邦大師 1 級 ‧ 2023-08-31 13:05:25 檢舉
這個直接樞紐分析表就好了,真要的話countif也行。
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
海綿寶寶
iT邦大神 1 級 ‧ 2023-08-31 07:24:37
最佳解答

只要改這列,其他都不用改
end_col = Range("AM1").End(xlDown).Row

ian820409 iT邦新手 5 級 ‧ 2023-08-31 12:21:33 檢舉

好!!我也測試看看,謝謝您回復,兩則我都好像當最佳解答

1
paicheng0111
iT邦大師 5 級 ‧ 2023-08-30 18:20:01

不需要VBA

用函數就可以了,你參考看看。

ian820409 iT邦新手 5 級 ‧ 2023-08-31 12:21:09 檢舉

原來!!獲益良多,謝謝您

我要發表回答

立即登入回答