• 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 阔以看看这里哟

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

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

    共同学习

  • 相关阅读:
    测试随笔
    ECNU 3530 和你在一起
    ECNU 1030 母牛生小牛
    ECNU 3081 购房还款
    PPP模式下的融资结构优化
    决策树分类
    关联规则-R语言实现
    中国快递包裹总量的预测-基于SARIMA模型
    LeetCode 2 :Swap Nodes in Pairs
    2018092609-2 选题 Scrum立会报告+燃尽图 04
  • 原文地址:https://www.cnblogs.com/myblogslh/p/12332514.html
Copyright © 2020-2023  润新知