VBA实战技巧精粹019:如何快速填充考场号及座号
問(wèn)題的提出:一般而言,考場(chǎng)座號(hào)都是1至30號(hào),如果考場(chǎng)數(shù)較少的話,完全可以采用鼠標(biāo)操作,但是如果考場(chǎng)數(shù)太多,尤其是在填充考場(chǎng)號(hào)時(shí)才是麻煩!!比如高考考場(chǎng)的安排,那工作量可想而知,以前都是鼠標(biāo)操作的方式進(jìn)行,感覺(jué)特別別扭,現(xiàn)在想著用VBA實(shí)現(xiàn)自動(dòng)操作。
實(shí)現(xiàn)的思路:先計(jì)算出共有多少個(gè)學(xué)生需要編排考場(chǎng),然后利用ceiling函數(shù)取得向上的最小整數(shù),即為考場(chǎng)數(shù)。利用考場(chǎng)數(shù)即為需要循環(huán)操作的次數(shù)即可實(shí)現(xiàn)。
源代碼如下:
Sub 自動(dòng)填充座號(hào)及考場(chǎng)號(hào)()
' 實(shí)現(xiàn)可以自動(dòng)填充座號(hào),關(guān)鍵是在不足30人的考場(chǎng)中如何實(shí)現(xiàn)按實(shí)際人數(shù)進(jìn)行填充
??? Dim i As Integer, totalR As Integer, k As Integer, j As Integer
??? i = Application.WorksheetFunction.Ceiling((Range("A65536").End(xlUp).Row - 1) / 30, 1)
??? For k = 1 To i
??????? For j = 2 + (k - 1) * 30 To 31 + (k - 1) * 30
??????????? Cells(j, 2).Value = j - (k - 1) * 30 - 1? '第2列填充座號(hào)。
??????????? Cells(j, 3).Value = k? '第3列填充考場(chǎng)號(hào)。
??????????? Cells(j, 4).Value = Worksheets("sheet2").Cells(k, 1).Value '利用事先準(zhǔn)備的考場(chǎng)位置進(jìn)行填充
??????? Next j
??? Next k
??? Columns(1).SpecialCells(xlCellTypeBlanks).EntireRow.Delete '利用第1列為姓名或其它,將為空的單元格所在行刪除即為最終結(jié)果
End Sub
解釋如下:
首先,為什么在((Range("A65536").End(xlUp).Row - 1) / 30, 1)中要減去1呢?因?yàn)橛辛袠?biāo)題嘛。
其次,用到了Ceiling函數(shù),為Excel工作表函數(shù),作用是取得向上的整數(shù)。
說(shuō)明
將參數(shù) Number 向上舍入(沿絕對(duì)值增大的方向)為最接近的 significance 的倍數(shù)。例如,如果您不愿意使用像“分”這樣的零錢(qián),而所要購(gòu)買(mǎi)的商品價(jià)格為 ¥4.42,可以用公式 =CEILING(4.42,0.05) 將價(jià)格向上舍入為以“角”表示。
語(yǔ)法
CEILING(number, significance)CEILING 函數(shù)語(yǔ)法具有下列參數(shù) (參數(shù):為操作、事件、方法、屬性、函數(shù)或過(guò)程提供信息的值。):
- Number????必需。要舍入的值。
- Significance????必需。要舍入到的倍數(shù)。
說(shuō)明
- 如果參數(shù)為非數(shù)值型,CEILING 返回錯(cuò)誤值 #VALUE!。
- 無(wú)論數(shù)字符號(hào)如何,都按遠(yuǎn)離 0 的方向向上舍入。如果數(shù)字已經(jīng)為 Significance 的倍數(shù),則不進(jìn)行舍入。
- 如果 number 和 significance 都為負(fù),則對(duì)值按遠(yuǎn)離 0 的方向進(jìn)行向下舍入。
- 如果 number 為負(fù),significance 為正,則對(duì)值按朝向 0 的方向進(jìn)行向上舍入。
示例
如果將示例復(fù)制到一個(gè)空白工作表中,可能會(huì)更容易理解該示例。
如何復(fù)制示例?
- 選擇本文中的示例。
?要點(diǎn)???不要選擇行或列標(biāo)題。
從“幫助”中選擇示例- 按 Ctrl+C。
- 在 Excel 中,創(chuàng)建一個(gè)空白工作簿或工作表。
- 在工作表中,選擇單元格 A1,然后按 Ctrl+V。
?要點(diǎn)???若要使該示例能夠正常工作,必須將其粘貼到工作表的單元格 A1 中。
- 要在查看結(jié)果和查看返回結(jié)果的公式之間進(jìn)行切換,請(qǐng)按 Ctrl+`(重音符),或在“公式”選項(xiàng)卡上的“公式審核”組中,單擊“顯示公式”按鈕。
將示例復(fù)制到一個(gè)空白工作表中后,可以按照您的需要改編示例。
|
|
BuzzNet: Excel VBA
del.icio.us: Excel VBA
Flickr: Excel VBA
IceRocket: Excel VBA
LiveJournal: Excel VBA
Technorati: Excel VBA
轉(zhuǎn)載于:https://www.cnblogs.com/xiehui/archive/2011/08/13/2136917.html
總結(jié)
以上是生活随笔為你收集整理的VBA实战技巧精粹019:如何快速填充考场号及座号的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 前端学习(1917)vue之电商管理系统
- 下一篇: 什么是RIA技术,RIA技术概览