搜尋條件是"肉類",從"清單(C欄)"的第2個儲存格開始搜尋,
遇到符合的會放在"肉類(A欄)"的第2個,像豬肉會被放在第2個,
各項食品皆已定義好哪個是肉類哪個是蔬菜,
假設D欄"分類"被隱藏,會自動分類"清單",然後把分類結果傳回A欄或B欄
問題就是:1.如何把牛肉放在"肉類(A欄)"的第3個?
2.第3個搜尋到的是豬肉,因為第2個儲存格已經是豬肉,會忽略或覆蓋第2個
3.雞肉放在"肉類(A欄)"的第4個?
4.往下以此類推
Dim i
For i = 2 To 9
If Cells(i, 3) = '肉類' Then
Cells(2, 1) = Cells(i, 3)
End If
Next
該如何修改呢?
抱歉啊!新手無法回應討論...
請使用 海綿寶寶的表格,必須有一行是判別肉類或是蔬菜
i 控制搜尋肉類或是蔬菜
j 是第一 Column 肉類已經寫到第幾格
k 是第二 Column 蔬菜已經寫到第幾格
'--------------------------------------------
Dim i,j,k
j=2
k=2
For i = 2 To 9
If Cells(i, 4) = '肉類' Then
Cells(j, 1) = Cells(i, 3)
j = j + 1
Else
Cells(k, 1) = Cells(i, 3)
k = k + 1
End If
Next
我不是高手,但是有「程式碼」......
Private Sub CommandButton1_Click()
Dim x, y As Integer
x = 2
y = 2
RecordCount = Worksheets("工作表1").Range("C65535").End(xlUp).Row
For i = 2 To RecordCount
If Cells(i, 4) = "肉類" Then
Cells(x, 1) = Cells(i, 3)
x = x + 1
ElseIf Cells(i, 4) = "蔬菜類" Then
Cells(y, 2) = Cells(i, 3)
y = y + 1
End If
Next
'工作表1 A 欄位去除重複
Worksheets("工作表1").Range("A2:A" & RecordCount).RemoveDuplicates Columns:=1, Header:=xlNo
'工作表1 B 欄位去除重複
Worksheets("工作表1").Range("B2:B" & RecordCount).RemoveDuplicates Columns:=1, Header:=xlNo
'排序:工作表1 A 欄位
ActiveWorkbook.Worksheets("工作表1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("工作表1").Sort.SortFields.Add Key:=Range("A2:A" & RecordCount), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("工作表1").Sort
.SetRange Range("A2:A" & RecordCount)
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'排序:工作表1 B 欄位
ActiveWorkbook.Worksheets("工作表1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("工作表1").Sort.SortFields.Add Key:=Range("B2:B" & RecordCount), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("工作表1").Sort
.SetRange Range("B2:B" & RecordCount)
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A2:A" & RecordCount).Select
With Selection
.HorizontalAlignment = xlCenter '中間對齊
End With
Range("B2:B" & RecordCount).Select
With Selection
.HorizontalAlignment = xlCenter '中間對齊
End With
End Sub
我也不是大師,但是我覺得這個用公式做就好了。
=IF(ISNA(MATCH(C2,$A$2:$A$4,0)),B1,A1)