標題:
有條件取代儲存格內容
[打印本頁]
作者:
mmggmm
時間:
2011-6-23 12:03
標題:
有條件取代儲存格內容
[attach]6762[/attach]請問可否解決這問題
作者:
luhpro
時間:
2011-6-28 22:54
回復
1#
mmggmm
1. 你的程式有設密碼, 所以看不到原始碼, 不能參照原始碼做修改
2. 敘述中的 :
請問可否改為SHEET"POST"O2:O10名單保留
SHEET"POST"O11:O45名單設定有"NO"和 "YES"
如果在SHEET"POST"G:G為"NO"則屬"YES"保留其他用"X"取代
中看不出來 "NO"和 "YES" 兩者有什麼不同.
而你所舉範例的 H7:AL7 只有 E08、O 與 A 三種值,
A 與 O 是你說要 "保留" 的部份,
而 E08 則屬於 "NO" 的部份,
其中沒有 "YES" 部分的範例資料.
所以無從下手修改.
作者:
mmggmm
時間:
2011-6-30 16:27
[attach]6886[/attach]
作者:
GBKEE
時間:
2011-7-1 09:28
回復
3#
mmggmm
"如果在SHEET"POST"G:G為"NO"則屬"YES"保留其他用"X"取代"
這句話可以再白話些嗎?
作者:
mmggmm
時間:
2011-7-1 12:53
[attach]6890[/attach]其實我原是用兩表分別執行,現想兩表一次執行巨集完成
作者:
GBKEE
時間:
2011-7-1 18:30
回復
5#
mmggmm
是這樣嗎?
Sub Ex()
Dim Ay(1), Y
With Sheets("POSIT")
Ay(0) = Application.Transpose(.Range("O2:O" & .Range("O" & Rows.Count).End(xlUp).Row))
Ay(1) = Application.Transpose(.Range("P2:P" & .Range("P" & Rows.Count).End(xlUp).Row))
End With
For Each A In ActiveSheet.[H3:AL400]
Y = Application.Match(A, Ay(0), 0)
If IsError(Y) Then
A.Value = "X"
ElseIf Y > 0 And Cells(A.Row, "G") <> Ay(1)(Y) Then
A.Value = "X"
End If
Next
End Sub
複製代碼
作者:
mmggmm
時間:
2011-7-2 11:12
GBKEE :
我目的是將"NO"和"YES"兩頁合併在一頁執行取代,可能兩頁各有不同條件取代而變得複雜了,請看看附件中我在"POSIT"中的說明是否明白一些.[attach]6896[/attach]
作者:
GBKEE
時間:
2011-7-3 11:24
本帖最後由 GBKEE 於 2011-7-3 11:26 編輯
回復
7#
mmggmm
此區(P16:Q24)在執行巨集後必定保留
不管sheet"Meals"G:G是屬"YES" "NO" 都保留嗎?
Q2:Q14 是NO ->sheet"Meals"G:G是屬"YES"必定保留
Q25:Q36 是YES ->sheet"Meals"G:G是屬"NO"必定保留
請問POSIT 的P欄所有資料會重復嗎?
P15:Q15為何是空白的
作者:
mmggmm
時間:
2011-7-3 19:51
GBKEE:
P欄資料不會重復,P15:Q15可以刪除,因為先前是有資料的.謝謝
作者:
GBKEE
時間:
2011-7-3 20:40
回復
9#
mmggmm
依據 7樓附檔修改的
Sub Ex()
Dim Ay(1), Y
With Sheets("POSIT")
Ay(0) = Application.Transpose(.Range("P2:P" & .Range("P" & Rows.Count).End(xlUp).Row))
Ay(1) = Application.Transpose(.Range("Q2:Q" & .Range("O" & Rows.Count).End(xlUp).Row))
End With
For Each A In ActiveSheet.[H3:AL400]
Y = Application.Match(A, Ay(0), 0)
If IsError(Y) Then
A.Value = "X"
ElseIf Y > 0 Then
If (Y <= 14 Or Y >= 24) And Cells(A.Row, "G") = Ay(1)(Y) Then A.Value = "X"
End If
Next
End Sub
複製代碼
作者:
mmggmm
時間:
2011-7-3 22:25
GBKEE :
謝謝,請問H3:AL400內如是空格亦保留,請問如何?
作者:
GBKEE
時間:
2011-7-4 07:18
回復
11#
mmggmm
Sub Ex()
Dim Ay(1), Y As Integer, A As Range
With Sheets("POSIT")
Ay(0) = Application.Transpose(.Range("P2:P" & .Range("P" & Rows.Count).End(xlUp).Row))
Ay(1) = Application.Transpose(.Range("Q2:Q" & .Range("O" & Rows.Count).End(xlUp).Row))
End With
For Each A In ActiveSheet.[H3:AL400]
If A <> "" Then
Y = Application.Match(A, Ay(0), 0)
If IsError(Y) Then
A.Value = "X"
ElseIf Y > 0 Then
If (Y <= 14 Or Y >= 24) And Cells(A.Row, "G") = Ay(1)(Y) Then A.Value = "X"
End If
End If
Next
End Sub
複製代碼
作者:
mmggmm
時間:
2011-7-4 22:24
[attach]6908[/attach]
[attach]6909[/attach]
GBKEE :執行後現以上情況
作者:
GBKEE
時間:
2011-7-5 09:07
回復
13#
mmggmm
Dim Ay(1), Y
As Integer
, A As Range
Y為數字型態是Integer
Y不為數字則傳回 錯誤值 "#NA"
固須改為
As Variantr
沒被明確宣告為其他型態
作者:
mmggmm
時間:
2011-7-5 21:33
GBKEE :
請問As Variantr 和 As Variant 有何分別因為改為 As Variant 就ok了
作者:
GBKEE
時間:
2011-7-6 09:02
本帖最後由 GBKEE 於 2011-7-6 10:15 編輯
回復
15#
mmggmm
更正是 As Variant 不是 As Variant
r
是我不太用心!!
PS:感謝
oobird 版主指正
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)