用VB将EXCEL分列~~

NHGIGGS 2009-02-06 12:30:27
小弟有一EXCEL表。其中D列记录日期,格式是:2009-2-6。

请问怎样将D列拆分成三列。即年、月、日各为一列。

用VB能实现吗?求教~~~
...全文
246 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
NHGIGGS 2009-02-09
  • 打赏
  • 举报
回复
原来EXCEL中带有分列功能.

谢谢各位的帮忙!
东方之珠 2009-02-06
  • 打赏
  • 举报
回复
EXCEL表中的日期格式是多种多样,不一定是短横线“-”。
最好好的办法是将D列的数据拆分后,分别写到其他三列中:
Y=year(D列第一行的数据)‘取得年份
M=month(D列第一行的数据)'取得月份
D=day(D列第一行的数据)'取得日


jhone99 2009-02-06
  • 打赏
  • 举报
回复
dim a() as string

with xlssheet
for i=2 to [A65536].End(xlUp).Row
a=split(.cells(i,1),"-")
.cells(i,2)=a(0)
.cells(i,3)=a(1)
.cells(i,4)=a(2)
next i
end with
rivate Sub Command3_Click() Dim i As Long Dim j As Long Dim objExl As Excel.Application '声明对象变量 Me.MousePointer = 11 '改变鼠标样式 Set objExl = New Excel.Application '初始化对象变量 objExl.SheetsInNewWorkbook = 1 '将新建的工作薄数量设为1 objExl.Workbooks.Add '增加一个工作薄 objExl.Sheets(objExl.Sheets.Count).Name = "book1" '修改工作薄名称 objExl.Sheets.Add , objExl.Sheets("book1") '增加第二个工作薄在第一个之后 objExl.Sheets(objExl.Sheets.Count).Name = "book2" objExl.Sheets.Add , objExl.Sheets("book2") '增加第三个工作薄在第二个之后 objExl.Sheets(objExl.Sheets.Count).Name = "book3" objExl.Sheets("book1").Select '选中工作薄 For i = 1 To 50 '循环写入数据 For j = 1 To 5 If i = 1 Then objExl.Selection.NumberFormatLocal = "@" '设置格式为文本 objExl.Cells(i, j) = " E " & i & j Else objExl.Cells(i, j) = i & j End If Next Next objExl.Rows("1:1").Select '选中第一行 objExl.Selection.Font.Bold = True '设为粗体 objExl.Selection.Font.Size = 24 '设置字体大小 objExl.Cells.EntireColumn.AutoFit '自动调整列宽 objExl.ActiveWindow.SplitRow = 1 '拆分第一行 objExl.ActiveWindow.SplitColumn = 0 '拆分列 objExl.ActiveWindow.FreezePanes = True '固定拆分 objExl.ActiveSheet.PageSetup.PrintTitleRows = "$1:$1" '设置打印固定行 objExl.ActiveSheet.PageSetup.PrintTitleColumns = "" '打印标题 objExl.ActiveSheet.PageSetup.RightFooter = "打印时间: " & _ Format(Now, "yyyy年mm月dd日

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧