返回列表 上一主題 發帖

號碼挑選

謝謝版主的解答~

TOP

本帖最後由 kelsie 於 2010-12-9 17:52 編輯

一直研究不出來~要如何將數值呈現在兩排~或甚至多排的情形
我在數字挑選出來的時候~要做即時的排序,所以用了最陽春的方式在儲存格裡使用small函數~
但使用工作表保護時卻被限制住~研究了之前版主也曾分享的vba隱藏表格內公式的文章
卻還是不懂該如何下手.....

一直在延伸問題:dizzy:
不好意思再麻煩oobird版大~ 感謝!!
附上檔案 號碼挑選.rar (12.56 KB)

TOP

受教了,中括號的應用又多學了一項

TOP

本帖最後由 solely 於 2010-12-9 21:06 編輯

將oobird版主的程式碼改成這樣XD
就可以呈現兩列~
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If [g8] <> "" Then [c7:g10] = ""
If Not Intersect(Target, [C13:g17]) Is Nothing Then
[c7:g8].SpecialCells(4)(1) = Target
End If
If [g8] <> "" Then
[c9:g9] = [SMALL(c7:g8,column(a1:e1))*column(a1:e1)^0]
[c10:g10] = [SMALL(c7:g8,column(f1:j1))*column(f1:j1)^0]
End If
End Sub

TOP

回復 12# kelsie
  1. Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  2.     Dim Rng(2) As Range, i%, ii%
  3.     Set Rng(0) = [B3:I4]          '數字呈現區
  4.     Set Rng(1) = [B6:I7]          '數字排序區
  5.     Set Rng(2) = [B10:K13]        '數字選取區
  6.     If Not Intersect(Target, Rng(2)) Is Nothing Then
  7.         i = Application.Count(Rng(0))              '計算 數字呈現區的總數字數
  8.         If i = Rng(0).Count Then                   '數字呈現區 全部填滿數字 時
  9.             Rng(0) = "": Rng(1) = ""  '清空->數字呈現區,數字排序區
  10.             i = Application.Count(Rng(0))       '計算 數字呈現區的總數字數
  11.         End If
  12.         If Application.CountIf(Rng(0), Target) = 0 Then  '數字呈現區裡尋找重複的數字
  13.             Rng(0).Cells(i + 1) = Target
  14.             For ii = 1 To i + 1
  15.                 Rng(1).Cells(ii) = Application.Small(Rng(0), ii)   '傳回數字呈現區裡由小到大在數字排序區
  16.             Next
  17.         End If
  18.     End If
  19. End Sub
複製代碼

TOP

[c10:g10] = [SMALL(c7:g8,column(f1:j1))*column(f1:j1)^0]


哈~我這段想了好久好久....真是感謝感謝!!

TOP

回復 15# GBKEE


謝謝GBKEE版主~
學到另一種方法

剛才才發現原來我上傳了密碼設定的檔案了;P

TOP

^0  是什麼意思?
借錢不還,才是王道

TOP

回復 18# apolloooo


    0次方
學海無涯_不恥下問

TOP

        靜思自在 : 欣賞別人就是莊嚴自己。
返回列表 上一主題