文章目录
  1. 1. VBA学习笔记2 - 用VBA解决行列转制问题
    1. 1.1. 需求
    2. 1.2. 原理和伪代码

VBA学习笔记2 - 用VBA解决行列转制问题

需求

把人事的表从竖排的格式转成横排的
原始表 数据胡诌的


原始表 数据胡诌的

需要做到的样子


需要做到的样子

原理和伪代码

一共需要三个输入:源数据的第一个格子(Sheet1,C2),目标的第一个格子(Sheet2,C2),项目数量,和在源数据里面一共有多少列。
简单定义一下

  • Source (a,b)
  • Target (c.d)
  • Item NO. X
  • Total Row NO. Y
    在取得x,y,m,n,r的数字之后
    要做的是一个一个把sheet1里面数据填到Sheet2里面去
    Sheet1!C2 => Sheet2!C2
    Sheet1!C3 => Sheet2!D2

    Sheet1!C6 => Sheet2!C3
    Sheet1!C7 => Sheet2!D3

伪代码的话大致应该是这样的:
For (j=0,j<Y/X); { b=b+Xj; d=d+j; For (i=0,i<X) { (c+i,d) = (a,b+i)} }
然后就是实现了,就是让选两个格子,然后手工输入一下项目行数,根据第一个格子的列号找出一共有几列数字,之后应用一下这个循环来填充数字。

七牛挂了补不了图了…要等到8月六号