问题的提出:一般而言,考场座号都是1至30号,如果考场数较少的话,完全可以采用鼠标操作,但是如果考场数太多,尤其是在填充考场号时才是麻烦!!比如高考考场的安排,那工作量可想而知,以前都是鼠标操作的方式进行,感觉特别别扭,现在想着用VBA实现自动操作。

实现的思路:先计算出共有多少个学生需要编排考场,然后利用ceiling函数取得向上的最小整数,即为考场数。利用考场数即为需要循环操作的次数即可实现。

源代码如下:

Sub 自动填充座号及考场号()
' 实现可以自动填充座号,关键是在不足30人的考场中如何实现按实际人数进行填充
    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列填充座号。
            Cells(j, 3).Value = k  '第3列填充考场号。
            Cells(j, 4).Value = Worksheets("sheet2").Cells(k, 1).Value '利用事先准备的考场位置进行填充
        Next j
    Next k
    Columns(1).SpecialCells(xlCellTypeBlanks).EntireRow.Delete '利用第1列为姓名或其它,将为空的单元格所在行删除即为最终结果
End Sub

解释如下:

首先,为什么在((Range("A65536").End(xlUp).Row - 1) / 30, 1)中要减去1呢?因为有列标题嘛。

其次,用到了Ceiling函数,为Excel工作表函数,作用是取得向上的整数。

说明

将参数 Number 向上舍入(沿绝对值增大的方向)为最接近的 significance 的倍数。例如,如果您不愿意使用像“分”这样的零钱,而所要购买的商品价格为 ¥4.42,可以用公式 =CEILING(4.42,0.05) 将价格向上舍入为以“角”表示。

语法

CEILING(number, significance)

CEILING 函数语法具有下列参数

  • Number    必需。要舍入的值。
  • Significance    必需。要舍入到的倍数。
  • 说明

    • 如果参数为非数值型,CEILING 返回错误值 #VALUE!。
    • 无论数字符号如何,都按远离 0 的方向向上舍入。如果数字已经为 Significance 的倍数,则不进行舍入。
    • 如果 number 和 significance 都为负,则对值按远离 0 的方向进行向下舍入。
    • 如果 number 为负,significance 为正,则对值按朝向 0 的方向进行向上舍入。

    示例

    如果将示例复制到一个空白工作表中,可能会更容易理解该示例。

  • 选择本文中的示例。
  •  要点   不要选择行或列标题。

    VBA实战技巧精粹019:如何快速填充考场号及座号

    从“帮助”中选择示例
    • 按 Ctrl+C。
    • 在 Excel 中,创建一个空白工作簿或工作表。
    • 在工作表中,选择单元格 A1,然后按 Ctrl+V。

     要点   若要使该示例能够正常工作,必须将其粘贴到工作表的单元格 A1 中。

    • 要在查看结果和查看返回结果的公式之间进行切换,请按 Ctrl+`(重音符),或在“公式”选项卡上的“公式审核”组中,单击“显示公式”按钮。

    将示例复制到一个空白工作表中后,可以按照您的需要改编示例。

     
    1
    2
    3

    4
    5

    6

    相关文章:

    • 2022-12-23
    • 2022-12-23
    • 2022-12-23
    • 2021-09-03
    • 2021-11-29
    • 2022-12-23
    • 2022-12-23
    猜你喜欢
    • 2022-12-23
    • 2022-12-23
    • 2022-12-23
    • 2022-12-23
    • 2021-07-06
    • 2021-12-14
    相关资源
    相似解决方案