求助VBA組合

時間 2023-03-14 22:30:08

1樓:落葉l無情

sub 巨集1()

dim n as new collection

on error resume next

set r = range("b1:h4,c5:h5") 去掉b5

for each c1 in r

for each c2 in r

if <>then '去掉第二位數用過的單元格。

for each c3 in r

if <>and <>then '去掉第。

二、三位數用過的單元格。

range("b5") c1 & c2 & c3, range("b5") c1 & c2 & c3

c1 & range("b5") c2 & c3, c1 & range("b5") c2 & c3

c1 & c2 & range("b5") c3, c1 & c2 & range("b5") c3

c1 & c2 & c3 & range("b5"),c1 & c2 & c3 & range("b5")

end if

nextend if

nextnext

for i = 1 to

range("k" &i) =n(i) '加了字首單引號,以顯示0開頭的數字,如果不加,先設定k列格式為文字試試。

nextend sub

利用了集合的key的唯一性,來去除相同的值。

另外zhuzhongsu說的是錯誤的,因為在b1:h5裡面有的數字是小於3個的(比如7),這樣組合出來的數就沒有3777,7377等。

2樓:俎厹絢

其實你有沒有發現你要的結果換乙個說法就是 從0001-9999這1萬個組合中把沒有3(b5值)的組合去掉就是你的結果。

3樓:匿名使用者

其實做法很簡單,就是要迴圈將所有可能列出,然後用去掉相同的篩選功能一次完成。

4樓:姓王的

請問0開頭的算不算四位數?

幫忙看看這個excel的功能如何用vba來實現!

5樓:陽光上的橋

下面用盡量簡單的**實現,自定義乙個函式來統計有效備註數量,**寫到模組裡面,如下圖:

然後工作表就可以使用這個函式了,如下圖:

當然這個公式是可以下拉的,而且引數可以隨意寫。

最後,程式**文字為:

option explicit

function 有效備註數量(byval s$) as longdim n&, t, i&

for each t in split(replace(s, "

t = replace(t, "

i = instr(t, "

if i = 0 then i = len(t)if i > 6 then n = n + 1next t

有效備註數量 = n

end function

vba問題求解

6樓:macq在路上

按照下列步驟可實現:

1、在表的b1單元格輸入="copy test " a1,然後把游標移動到b1單元格右下角,當游標變成實心黑十字時,雙擊左鍵,實現**自動填充;

2、選中b列全部內容,進行複製。

3、開啟記事本,將複製內容全部貼上到新的文字檔案中,然後在最前面新增一行,內容為@echo off

4、將文字檔案儲存到與test資料夾同乙個路徑,儲存為bat檔案,檔名隨意,只是要注意編碼選ansi

5、雙擊該指令碼檔案即可。

7樓:匿名使用者

資料夾名稱和a列名稱的對應關係沒講。

excel中vba**的問題,請教乙個思路即可

8樓:匿名使用者

1、將a列分列分開(分成四列)

2、d列用公式就可以得到結果(if 判斷a、b、c三種計算公式)

9樓:匿名使用者

我說幾點:

1、資料分列後的結果,不用單元格存放,除非你有這個需求。這個是挺占用時間的。

2、盡量用陣列,原始資料用乙個陣列,在需要的輸出列用乙個陣列,區域和陣列之間傳資料相對就快。

3、分列的資料 ,建議 先 & 後再分列,這樣,程式處理圖例第四行與第二行是同乙個程式了。而不用增加分支判斷。

4、 資料多了,是挺占用時間的,要耐心。

求助 VBA下移一行

sub addbeforebold dim rng as range,i as integerfor i 100 to 1 step 1cells i,1 select if cells i,1 font.bold true and cells i,1 then selection.insert s...

排列 組合(急求助)

h,e,l o四個字母排列,有p 4,4 24種可能在helo中插入乙個l,有c 5,1 5種可能所以hello的排列共有24 5 120種可能當l插入helo中的e與l 之間或l與o 之間時,該單詞正確所以錯誤的坑是120 2 118種 首先5個字母中寫錯兩個 為 a52 5 4 20三個順序寫錯...

vba中的,VBA中的UBound

嗯那就好 如果沒指明下標起始值,下標預設是從0開始的所以問題中返回的會是4 如果vba模組中用了這句option base 1則預設下標起始是1 則問題中返回的會是5 一年孤獨 返回4,因為預設下標是從0開始的。相當於a 0 to 4 ubound語法如下 返回乙個 long 型資料,其值為指定的陣...