网站首页 > 基础教程 正文
一、需求
根据指定的标题名称,提取指定工作表的指定列数据,将结果存放在当前活动工作表的A1位置,依次向右移动
二、实现思路
- 创建一个提取指定列数据的函数,利用该函数循环抓取需求列
- 模块顶部定义常量列名称和指定工作表名称,便于后期修改维护
- 在主程序中调用以上函数和常量值
三、代码
' 日期:2024-5-9
' 作者:LiuYu
' 版本:1.0
' 文档说明:根据指定的标题名称,提取指定工作表的指定列数据,将结果存放在当前活动工作表的A1位置,依次向右移动
' 自定义修改:可以通过修改常量值,修改提取列的标题名称、工作表名称
' 模块内定义提取列的常量数组、工作表名称
Public Const COLUMN_NAME As String = "装车日期,运单状态,发站,到站,箱号"
Public Const WS_NAME As String = "1.铁路明细表"
Function extract_column_data(COLUMN_NAME As String, ws As Worksheet)
' 提取指定列数据,整列数据
' 输入参数:
' column_name: 该列的标题名称
' ws: 工作表对象
' 返回结果:result as array,返回数组,数组中每一项为该列的每一行数据
Dim result_arr As Variant
Dim col_index As Integer
' 获取列索引,若匹配成功返回该列索引号,否则返回0
col_index = 1
For i = 1 To ws.usedrange.columns.count
If ws.Cells(1, i).value = COLUMN_NAME Then
col_index = i
Exit For
Else
col_index = 0
End If
Next
' 获取该列数据
If col_index > 0 Then
result_arr = ws.usedrange.columns(col_index).value
Else
result_arr = Array()
End If
' 返回结果
extract_column_data = result_arr
End Function
Sub extract()
' 提取数据
' 获取工作表对象
Dim ws As Worksheet
Set ws = activeworkbook.worksheets(WS_NAME)
' 将列名称装进数组
Dim column_name_array() As String
Dim i As Integer
ReDim column_name_array(0 To UBound(Split(COLUMN_NAME, ",")))
For i = 0 To UBound(Split(COLUMN_NAME, ","))
column_name_array(i) = Split(COLUMN_NAME, ",")(i)
Next i
' 遍历列名称数组
For i = 0 To UBound(column_name_array)
' 提取数据
Dim result_arr As Variant
result_arr = extract_column_data(column_name_array(i), ws)
' 结果写入到激活工作表的表格
ActiveSheet.Cells(1, i + 1).Resize(UBound(result_arr), 1) = result_arr
Next i
End Sub
四、效果
猜你喜欢
- 2025-01-12 8个必会的高效提取数字法,你知道几个?
- 2025-01-12 条件太太太太太多怎么求和?教你5招,轻松就搞定
- 2025-01-12 函数公式的左膀右臂:ROW、COLUMN函数知多少
- 2025-01-12 【excel】从现在开始掌握sortby函数,各类排序都不怕!
- 2025-01-12 Vlookup一次性查找多个值,4种方法,你更喜欢哪种?
- 2025-01-12 常用公式,效果挺好
- 2025-01-12 获取列号函数COLUMN的应用技巧
- 2025-01-12 INDEX函数怎么用?两种方法全在这儿
- 2025-01-12 快速查询,INDEX和MATCH函数必须会!
- 2025-01-12 EXCEL:别想得太复杂,动态的职工信息表,用INDEX函数就可搞定
- 01-128个必会的高效提取数字法,你知道几个?
- 01-12条件太太太太太多怎么求和?教你5招,轻松就搞定
- 01-12函数公式的左膀右臂:ROW、COLUMN函数知多少
- 01-12【excel】从现在开始掌握sortby函数,各类排序都不怕!
- 01-12Vlookup一次性查找多个值,4种方法,你更喜欢哪种?
- 01-12常用公式,效果挺好
- 01-12获取列号函数COLUMN的应用技巧
- 01-12INDEX函数怎么用?两种方法全在这儿
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)