excel vba 的读取列,写入列,循环和if 的一些操作

您所在的位置:网站首页 vba查询符合条件的数据显示在列表框里 excel vba 的读取列,写入列,循环和if 的一些操作

excel vba 的读取列,写入列,循环和if 的一些操作

2024-03-14 09:29| 来源: 网络整理| 查看: 265

最近在研究 Excel 中的 VBA ,也就是Excel 的宏,需要将第一个页面的值,等列排入第二个Sheet页中

就像第一个页面中

 

 

 排列成

这个样子

首先需要缕缕自己的思路

我们需要获取到第一个Sheet 也的值

Set Destination = Worksheets("Sheet1")

获取到以后,要如何去找到每一列的值并赋值给另外一个Sheet 呢?

当然是,循环 + 写入了

Dim a As Integer Dim b As Integer Dim js As Integer Set Destination = Worksheets("Sheet1") Set Destination2 = Worksheets("Sheet2") '行数 a = Destination.UsedRange.Rows.Count '列数 b = Destination.UsedRange.Columns.Count '循环行 For i = 1 To a '循环列 For j = 1 To b '计算行所在位置 js = (i * 2) '不同列不同的数据处理 If (j = 2) Then Destination2.Cells(js, j + 1) = Destination.Cells(i, j) ElseIf (j = 3) Then Destination2.Cells(js - 1, j) = Destination.Cells(i, j) Else Destination2.Cells(js - 1, j) = Destination.Cells(i, j) Destination2.Cells(js, j) = Destination.Cells(i, j) Destination2.Cells(js - 1, j + 1) = Destination.Cells(i, j) Destination2.Cells(js, j + 1) = Destination.Cells(i, j) End If Next Next

这其中Dim 就是拿来定义变量

用你获取到的Sheet 页数据.Cells 就是来取你某一个XY对应的数据,也可以直接进行赋值

For 的语法就是 For 变量 = 初始值 To 结束值

Next

If 的语法就简单了

IF(条件) then 你的代码 else 没有否则条件可以不写 End If

然后执行以下,我们看看

 

 

 是不是 so easy?

为了以防万一,可以在最为层加入 If Not IsError

他的用法和if 大同小异,If Not IsError(你认为可能会报错的行) Then 如果没有报错的话 else 报错了的话  On Error Resume Next

那如果我们想让单元格稍微美观一点,加个表格怎么办呢?

With ActiveSheet.UsedRange.Resize(x, b - 1).Borders .LineStyle = xlContinuous .Weight = xlThin End With

简简单单一个 with 循环搞定

最后来个友情的弹出框

result = MsgBox("转换完成", 0, "提示")

至于弹出框还有什么样式,https://www.yiibai.com/vba/vba_message_box.html 阔以看看这里哟

当然里面以及空行删除啊,或者自行填充啊,这个就是你的逻辑代码需要处理的事情了

理论上知识点,差不多就这些吧

共同学习

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3