標題:
任選儲存格累加設定數值
[打印本頁]
作者:
y663258
時間:
2011-11-17 16:23
標題:
任選儲存格累加設定數值
各位大大:如附件說明自己找資料就是湊不出程式,請協助謝謝。
作者:
Hsieh
時間:
2011-11-17 16:46
回復
1#
y663258
你的舉例C16為何是16?
作者:
GBKEE
時間:
2011-11-17 17:14
本帖最後由 GBKEE 於 2011-11-18 07:04 編輯
回復
1#
y663258
Option Explicit
Public A As Integer
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim AR(1 To 7) As Range, i As Integer, s As Integer
Application.EnableEvents = False
Set AR(1) = [A3:E12]
Set AR(2) = [G3:K12]
Set AR(3) = [M3:Q12]
Set AR(4) = [A15:E24]
Set AR(5) = [G15:K24]
Set AR(6) = [M15:P24]
Set AR(7) = [A27:D37]
For i = 1 To 7
If i = 1 Then s = 1 Else s = s * 2
If Not Intersect(Target(1), AR(i)) Is Nothing Then A = s + A
Next
Application.EnableEvents = True
End Sub
Sub Ex() '插入物件(圖片,文字框等..按鈕) 指定此巨集
Dim Rng As Range
Set Rng = Range("B39", Range("B39").End(xlDown))
Rng(A).Select
MsgBox Rng(A)
A = 0
End Sub
複製代碼
作者:
y663258
時間:
2011-11-17 17:36
Hsieh 大大C16是在4應是8,誤值了不好意思。
作者:
y663258
時間:
2011-11-17 17:46
GBKEE 大大大謝謝幫忙
Dim Rng As Range
Set Rng = Range("B39", Range("B39").End(xlDown))
Rng(A).Select
MsgBox Rng(A)
A = 0
End Sub
經測試只顯示(姓氏)不能比對累加後數值顯示出姓氏,請再修正謝謝。
作者:
GBKEE
時間:
2011-11-17 21:47
回復
5#
y663258
'Module 的程式碼
Option Explicit
Public A() 'Module 的程式碼
Sub Ex() '插入物件(圖片,文字框等..按鈕) 指定此巨集
Dim Rng As Range, M As String, i
Set Rng = Range("B39", Range("B39").End(xlDown))
On Error GoTo Thend
For i = 0 To UBound(A) - 1
M = M & IIf(M <> "", " : ", "") & Rng(A(i))
Next
MsgBox M
Erase A
Thend:
End Sub
複製代碼
Worksheet 的程式碼
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim AR(1 To 7) As Range, i As Integer, s As Integer
Application.EnableEvents = False
Set AR(1) = [A3:E12]
Set AR(2) = [G3:K12]
Set AR(3) = [M3:Q12]
Set AR(4) = [A15:E24]
Set AR(5) = [G15:K24]
Set AR(6) = [M15:P24]
Set AR(7) = [A27:D37]
For i = 1 To 7
If i = 1 Then s = 1 Else s = s * 2
If Not Intersect(Target(1), AR(i)) Is Nothing Then
On Error GoTo TEN:
A(UBound(A)) = s
ReDim Preserve A(UBound(A) + 1)
End If
Next
Application.EnableEvents = True
Exit Sub
TEN:
ReDim A(0)
Resume
End Sub
複製代碼
作者:
y663258
時間:
2011-11-17 22:14
GBKEE 大大謝謝指導依示測試MsgBox顯示是點選過的姓氏,可否顯示點選過累加的姓氏,
如點選b4 ,h4,n4,g22=1+2+4+16=23比對b39:b138MsgBox顯然
宋
。
作者:
Hsieh
時間:
2011-11-17 23:51
回復
7#
y663258
Sub nn()
Dim ar As Range
Set ar = Union([A3:E12], [G3:K12], [M3:Q12], [A15:E24], [G15:K24], [M15:P24], [A27:D37])
For Each a In Selection
s = 1
For Each c In ar.Areas
Set b = Intersect(a, c)
If Not b Is Nothing Then cnt = cnt + s: Exit For
s = s * 2
Next
Next
MsgBox [B39:B138].Cells(cnt, 1)
End Sub
複製代碼
作者:
GBKEE
時間:
2011-11-18 07:09
回復
7#
y663258
請看 3樓已修正的程式碼.
作者:
y663258
時間:
2011-11-18 09:22
謝謝二位大大不厭其煩撥冗指教,Hsieh 程式經測試,MsgBox 顯示的是,選取過的最後一組,小弟要的是
選取過的累加合計數值所對應姓氏
。如b4 ,h4,n4,g22=1+2+4+16=23比對b39:b138MsgBox顯然宋,這是猜姓氏的遊戲。在1-7請被猜者告訴猜測者1-7有出現姓氏的,如1,2,3,5有出現就是1+2+4+16=23對照姓氏表宋,被猜者就是姓宋,兄台再幫忙修正。
作者:
GBKEE
時間:
2011-11-18 09:34
本帖最後由 GBKEE 於 2011-11-18 09:41 編輯
回復
10#
y663258
如1,2,3,5有出現就是1+2+4+16=23對照姓氏表宋,被猜者就是姓宋
Hsieh超版 的程式碼,3樓的程式碼 ,不就是如此嗎?
真是看不出你要的是什麼?
作者:
y663258
時間:
2011-11-18 11:34
GBKEE 大大Hsieh超版 的程式碼,3樓的程式碼 ,小弟需求如1,2,3,5有出現宋就是1+2+4+16=23對照姓氏表宋,被猜者就是姓宋,但Hsieh超版 的程式碼結果是16顯示郭,沒有累加所選過的數值1+2+4+16只選最後選擇的16。
作者:
y663258
時間:
2011-11-18 11:36
回復
11#
GBKEE
GBKEE 大大Hsieh超版 的程式碼,3樓的程式碼 ,小弟需求如1,2,3,5有出現宋就是1+2+4+16=23對照姓氏表宋,被猜者就是姓宋,但Hsieh超版 的程式碼結果是16顯示郭,沒有累加所選過的數值1+2+4+16只選最後選擇的16。
作者:
GBKEE
時間:
2011-11-18 12:44
回復
13#
y663258
Hsieh超版 的程式碼結果是16顯示郭,沒有累加所選過的數值1+2+4+16只選最後選擇的16。
有的是 23 不是 16 你再 試試看
作者:
y663258
時間:
2011-11-18 15:36
回復
14#
GBKEE
GBKEE 大大可應是我說明不清楚,現反向思考若是一位姓
董
的告訴我們在1-7裡他的姓氏在1(A3A:E12)
,2(G3:K12),3(M3:Q12),6(M15:P24)有出現,所我們將
1.2.3.6
實際數值1+2+4+32=39(因1-7實際數值即
1,2,4,8,16,32,64
查A38編號39對應B77董。Hsieh 版大目前程式會顯示曾
因是取最後選取的6=32沒有累右前三個選項1.2.3之實際數值1,2,4。簡言之是猜姓氏在1-7有該姓氏出現即將實際數值相加後去查38編號就可猜中姓氏。
1 2 3 4 5 6 7
實際數值
1 2 4 8 16 32 64
測試姓(張)對照表是編號3的選取1 2有出現( 張)實際數值 是1+2=3 若顯示最後選取2 實際數值 也是2在對照表編號2是王就錯了
作者:
GBKEE
時間:
2011-11-18 17:17
回復
15#
y663258
我3樓 的程式碼 你在工作上一一的點選範圍過後 執行 Sub Ex() 可顯示答案 嗎?
Hsieh 版大目前程式會顯示曾因是取最後選取的6=32沒有累右前三個選項1.2.3之實際數值1,2,4。
有阿 你是如何執行的
Hsieh超版 的程式碼 For Each a In
Selection
你可能不了解
Selection
這意思
請你在工作上先按住 Ctrl 鍵 然後 點選 1,2,3 的範圍後 執行程式碼 看看是否對的
作者:
y663258
時間:
2011-11-18 17:33
回復
16#
GBKEE
原來要按住 Ctrl 操作,真的很感謝!這樣就正確了。
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)