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

Posted myblogslh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了excel vba 的读取列,写入列,循环和if 的一些操作相关的知识,希望对你有一定的参考价值。

最近在研究 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 阔以看看这里哟

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

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

共同学习

 

以上是关于excel vba 的读取列,写入列,循环和if 的一些操作的主要内容,如果未能解决你的问题,请参考以下文章

ASP读取EXCEL有某一列的数据读取不到,显示为空?

高分跪求 VBA word中实现循环搜索 并在WORD中找到列表 再根据已有数据自动填写进本行其它列

如何利用EXCEL VBA将一列数据中不重复的数据读取到数组中?

VBA:循环遍历各种Excel文件并将列复制到主文件中[关闭]

Excel如何把两列中相同的数据找出,并对应内容排列?

VBA脚本上的Excel VBA对象需要错误在计数器时重复行