久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

利用VBA實(shí)現(xiàn)數(shù)據(jù)的隨機(jī)排序

 滿泉ca85upjdlw 2021-02-03

今日的內(nèi)容是“VBA之EXCEL應(yīng)用”的第七章“循環(huán)在VBA中的利用”,。這講是第四節(jié)“利用VBA實(shí)現(xiàn)數(shù)據(jù)的隨機(jī)排序”,。這套教程從簡(jiǎn)單的錄制宏開(kāi)始講解,一直到窗體的搭建,,內(nèi)容豐富,,案例眾多。大家可以非常容易的掌握相關(guān)的知識(shí),,這套教程面向初學(xué)人員,,共三冊(cè),十七章,,都是我們?cè)诶肊XCEL工作過(guò)程中需要掌握的知識(shí)點(diǎn),,希望大家能掌握利用。

第四節(jié) 利用VBA實(shí)現(xiàn)數(shù)據(jù)的隨機(jī)排序

大家好,,我們這講的內(nèi)容是隨機(jī)排序的實(shí)現(xiàn),。什么是隨機(jī)排序呢?就是不按大家主觀意愿的排序,,比如相同級(jí)別的6個(gè)人參加一個(gè)會(huì)議,,在會(huì)議主辦方發(fā)布的公示中把哪個(gè)人名排在前面呢,?如果我們按照主觀意愿去排列的話,,勢(shì)必引起不必要的糾紛。這個(gè)時(shí)候我們可以引入隨機(jī)排序,。

1 隨機(jī)排序的應(yīng)用場(chǎng)景

如下工作表界面,,在A列有若干個(gè)人名,要實(shí)現(xiàn)這些人名不按某人主觀意愿的排序,。換一種說(shuō)法,,如果我們點(diǎn)擊旁邊的運(yùn)行按鈕可以運(yùn)行的話,那么我們要實(shí)現(xiàn)每次點(diǎn)擊排序是不一樣的,。這種順序是不以某人的意志為轉(zhuǎn)移的,。

利用VBA實(shí)現(xiàn)數(shù)據(jù)的隨機(jī)排序

如果我們?cè)诎才磐?jí)別的與會(huì)人員座位的時(shí)候,以上述的排序方法來(lái)安排順序的話,,大家肯定不會(huì)有什么意見(jiàn)了,。

2 隨機(jī)排序的思路分析

如何實(shí)現(xiàn)數(shù)據(jù)的隨機(jī)排序呢,?這里提供一個(gè)簡(jiǎn)單的思路,首先在要實(shí)現(xiàn)隨機(jī)排序的數(shù)據(jù)旁邊插入一列隨機(jī)數(shù),,然后我們對(duì)隨機(jī)數(shù)進(jìn)行排序,,排序的同時(shí)同步實(shí)現(xiàn)要隨機(jī)排序的數(shù)據(jù)。最后我們刪除插入的隨機(jī)數(shù)即可,。

由于隨機(jī)數(shù)的特點(diǎn)就是隨機(jī)產(chǎn)生,,不以某人的意志為轉(zhuǎn)移,這正是我們要利用的地方,,在排序的時(shí)候以隨機(jī)數(shù)為基準(zhǔn),,這樣的排序結(jié)果也是隨機(jī)的結(jié)果,你無(wú)法預(yù)知到這種結(jié)果是什么,。我們希望實(shí)現(xiàn)的也正是這一點(diǎn),。

在我的其他教程中,對(duì)隨機(jī)數(shù)的原理和擴(kuò)展應(yīng)用有十分詳細(xì)的講解[1],。大家可以參考,。我們這講的內(nèi)容只是就實(shí)現(xiàn)某些數(shù)據(jù)的隨機(jī)排序來(lái)講解。

如何實(shí)現(xiàn)要隨機(jī)排序的數(shù)據(jù)和隨機(jī)數(shù)同步呢,?只要關(guān)聯(lián)到同一行即可,。

3 隨機(jī)排序的代碼及代碼解讀

我們看下面的代碼:

Sub mynzD() '隨機(jī)排序的實(shí)現(xiàn)

Dim myStr As String

Sheets('Sheet4').Select

'第二列填入隨機(jī)數(shù)

For i = 1 To Range('A1').End(xlDown).Row

Cells(i, 2).Value = WorksheetFunction.RandBetween(0, 1000) '工作表隨機(jī)函數(shù)

Next

For i = 1 To Range('A1').End(xlDown).Row

For j = i + 1 To Range('A1').End(xlDown).Row

If Cells(j, 2).Value < Cells(i, 2).Value Then

'隨機(jī)數(shù)交換位置

myStr = Cells(i, 1).Value

Cells(i, 1).Value = Cells(j, 1).Value

Cells(j, 1).Value = myStr

'字符串交換位置

UU = Cells(i, 2).Value

Cells(i, 2).Value = Cells(j, 2).Value

Cells(j, 2).Value = UU

End If

Next

Next

Range('B1:B' & Range('A1').End(xlDown).Row).ClearContents

MsgBox 'ok!'

End Sub

代碼截圖:

利用VBA實(shí)現(xiàn)數(shù)據(jù)的隨機(jī)排序

代碼講解:

1) 上述代碼實(shí)現(xiàn)了A列人名的隨機(jī)排序。排序的實(shí)現(xiàn)方式和上節(jié)的冒泡排序一樣,。這個(gè)過(guò)程我就不再講解了,。

2) '第二列填入隨機(jī)數(shù)

For i = 1 To Range('A1').End(xlDown).Row

Cells(i, 2).Value = WorksheetFunction.RandBetween(0, 1000) '工作表隨機(jī)函數(shù)

Next

以上代碼在第二列插入隨機(jī)數(shù),隨機(jī)數(shù)的產(chǎn)生是WorksheetFunction.RandBetween(0, 1000) ,,這個(gè)函數(shù)是工作表函數(shù),,產(chǎn)生一個(gè)介于0和1000間的隨機(jī)數(shù)。

3) '隨機(jī)數(shù)交換位置

myStr = Cells(i, 1).Value

Cells(i, 1).Value = Cells(j, 1).Value

Cells(j, 1).Value = myStr

'字符串交換位置

UU = Cells(i, 2).Value

Cells(i, 2).Value = Cells(j, 2).Value

Cells(j, 2).Value = UU

以上代碼是冒泡排序中兩個(gè)更換位置的操作,,一個(gè)是隨機(jī)數(shù)的交換位置,,一個(gè)是要隨機(jī)排序的數(shù)據(jù)交換位置。這種同步是靠行數(shù)i來(lái)實(shí)現(xiàn)的,,因?yàn)檫@兩個(gè)數(shù)據(jù)是同一行數(shù)的數(shù)據(jù),。

4)Range('B1:B' & Range('A1').End(xlDown).Row).ClearContents 最后把隨機(jī)數(shù)刪除。

4 實(shí)現(xiàn)隨機(jī)排序代碼的實(shí)現(xiàn)效果

我們看一下上述代碼的實(shí)現(xiàn)效果,,點(diǎn)擊運(yùn)行:

利用VBA實(shí)現(xiàn)數(shù)據(jù)的隨機(jī)排序

再次點(diǎn)擊運(yùn)行:

利用VBA實(shí)現(xiàn)數(shù)據(jù)的隨機(jī)排序

這個(gè)時(shí)候排序的順序發(fā)生了改變,,當(dāng)我們反復(fù)點(diǎn)擊,每次排序都是不同的,,從而達(dá)到了隨機(jī)的目的,。

[1]關(guān)于隨機(jī)數(shù)的講解及擴(kuò)展應(yīng)用在我的第六套教程《VBA信息獲取與處理》中第二專題:隨機(jī)數(shù)(Random)在EXCEL工作表及VBA中的應(yīng)用中有詳細(xì)的介紹,大家可以參考。

今日內(nèi)容回向:

1) 實(shí)現(xiàn)隨機(jī)排序的思路是怎樣的,?

2) 如何實(shí)現(xiàn)排序數(shù)據(jù)和隨機(jī)數(shù)據(jù)的關(guān)聯(lián),?

利用VBA實(shí)現(xiàn)數(shù)據(jù)的隨機(jī)排序

本講內(nèi)容參考程序文件:工作簿07.xlsm

分享成果,隨喜正能量

VBA的應(yīng)用及學(xué)習(xí)方法:

VBA是利用Office實(shí)現(xiàn)個(gè)人小型辦公自動(dòng)化的有效手段(工具),。這是我對(duì)VBA的應(yīng)用界定,。在取代OFFICE新的辦公軟件沒(méi)有到來(lái)之前,誰(shuí)能在數(shù)據(jù)處理方面做到極致,,誰(shuí)就是王者,。其中登峰至極的技能非VBA莫屬!

我記得20年前自己初學(xué)VBA時(shí),,那時(shí)的資料甚少,,只能看源碼自己琢磨,真的很難。20年過(guò)去了,,為了不讓學(xué)習(xí)VBA的朋友重復(fù)我之前的經(jīng)歷,,我根據(jù)自己多年VBA實(shí)際利用經(jīng)驗(yàn),推出了七部VBA專門(mén)教程,。

第一套:VBA代碼解決方案 是VBA中各個(gè)知識(shí)點(diǎn)的講解,,教程共147講,覆蓋絕大多數(shù)的VBA知識(shí)點(diǎn),,提供的程序文件更是一座不可多得的代碼寶庫(kù),,是初學(xué)及中級(jí)人員必備教程;目前這套教程提供的版本是修訂第二版,,程序文件通過(guò)32位和64位兩種OFFICE系統(tǒng)測(cè)試,。

第二套:VBA數(shù)據(jù)庫(kù)解決方案 數(shù)據(jù)庫(kù)是數(shù)據(jù)處理的專業(yè)利器,教程中詳細(xì)介紹了利用ADO連接ACCDB和EXCEL的方法和實(shí)例操作,,適合中級(jí)人員的學(xué)習(xí),。目前這套教程提供的是修訂第一版教程,程序文件通過(guò)32位和64位兩種OFFICE系統(tǒng)測(cè)試,。

第三套:VBA數(shù)組與字典解決方案 數(shù)組和字典是VBA的精華,,字典是VBA代碼水平提高的有效手段,值得深入的學(xué)習(xí),,是初級(jí)及中級(jí)人員代碼精進(jìn)的手段,。目前這套教程提供的版本是修訂第一版,,程序文件通過(guò)32位和64位兩種OFFICE系統(tǒng)測(cè)試,。

第四套:VBA代碼解決方案之視頻 是專門(mén)面向初學(xué)者的視頻講解,可以快速入門(mén),,更快的掌握這門(mén)技能,。這套教程是第一套教程(修訂一版)的視頻講解,視頻更易接受。

第五套:VBA中類的解讀和利用是一部高級(jí)教程,,講解類的虛無(wú)與肉身的度化,,類的利用雖然較少,但仔細(xì)的學(xué)習(xí)可以促進(jìn)自己VBA理論的提高,。這套教程的領(lǐng)會(huì)主要是讀者的領(lǐng)悟了,,領(lǐng)悟一種佛學(xué)的哲理。目前這套教程提供的版本是修訂第一版,,程序文件通過(guò)32位和64位兩種OFFICE系統(tǒng)測(cè)試,。

第六套教程:VBA信息獲取與處理,是一部高級(jí)教程,,涉及范圍更廣,,實(shí)用性更強(qiáng),面向中高級(jí)人員,。教程共二十個(gè)專題,,包括:跨應(yīng)用程序信息獲得、隨機(jī)信息的利用,、電子郵件的發(fā)送,、VBA互聯(lián)網(wǎng)數(shù)據(jù)抓取、VBA延時(shí)操作,,剪切板應(yīng)用,、Split函數(shù)擴(kuò)展、工作表信息與其他應(yīng)用交互,,F(xiàn)SO對(duì)象的利用,、工作表及文件夾信息的獲取、圖形信息的獲取以及定制工作表信息函數(shù)等等內(nèi)容,。程序文件通過(guò)32位和64位兩種OFFICE系統(tǒng)測(cè)試,。

第七套教程:VBA之EXCEL應(yīng)用 這是一部初級(jí)教程這部教程共三冊(cè),從從創(chuàng)建宏,、對(duì)話框,、工作簿和工作表對(duì)象、單元格對(duì)象等基礎(chǔ)內(nèi)容講起,,到循環(huán)結(jié)構(gòu),、錯(cuò)誤處理、字符串操作,、日期和時(shí)間,、事件、數(shù)組應(yīng)用,,函數(shù)過(guò)程等方面,,一直講解到控件和窗體對(duì)象的應(yīng)用都是我們提高自己EXCEL水平的必須,。

以上各教程學(xué)習(xí)順序:7→1(或者4)→3→2→6→5。其中第四套是對(duì)第一套的視頻講解,,所以第一和第四只選其一即可,。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多