vba多列互换到指定位置怎么弄?

我有一个“任务跟踪器”工作簿,它使用列A:J来显示和计算任务信息(A:E用于用户输入的数据,F:J包含使用C:E中的信息并执行计算的公式 . J是用户视图中的隐藏单元格 . )其余列显示任务落在时间轴上的热图,以及它们是否按时运行,落后或完成 .

用户可以使用两个按钮:一个用于插入新行,另一个用于插入新列 . InsertRow()宏在列表中插入一行,然后从上面的行复制公式 . InsertColumn()宏定位工作表中最后使用的列,并将列中的所有内容复制到其左侧 .

最初,我有一个使用Range的InsertRow宏,它从列F(公式开始的位置)复制到列XFD . 但是,一旦我创建了InsertColumn宏,我意识到我不能像那样执行InsertRow,因为InsertColumn需要在工作表中找到最后一个包含数据的列并在右边添加一个新的...如果InsertRow先运行,InsertColumn将无效,因为lastColumn的值将作为列XFD的索引返回 .

I'找到最后一列的问题会返回索引,而Range函数需要列的名称 .

这是我对两个宏的所有内容:

}

内容提要:本文介绍excel行列互换的两种方法:使用转置功能和使用函数公式完成行列互换。

新群友们经常问到一个问题:excel行列互换,如何操作?就是将Excel的行列互换,行变成列,列变成行。

如果没有特殊要求,通常情况下,选择数据区域后,复制,单击开始——选择性粘贴——勾选“转置”即可。

excel行列互换多用在打印的时候,根据不同的页面设置,有时页面不够用,这个情况就需要用到Excel行列互换。

下图是一个简单的excel行列互换的实例应用。4行三列的Excel表格转换为三行四列。

操作步骤:选中需要进行行列转换的单元格区域,如A1:C4。复制。单击要存放转置表区域的左上角单元格,如A8单元格,单击“编辑”菜单中的“选择性粘贴”命令,打开“选择性粘贴”对话框,勾选 “转置”复选框。 确定就完成了excel行列互换。

excel行列互换需要注意以下两点:

第一,如果行引用到列上面,列引用到行上面,这样转置就不会成功,因为转置行的时候,盖到列的地方,那行引用自列上的内容就被改了,这样中途就会出错。

第二,如果单元格有函数算出来的值不再变化,可以使用选择性粘贴中的“数值”,把整个表复制到别的地方并把数值都固定下来,这样再用转置。

另外一种excel行列互换的效果,如下图,单纯的使用转置命令,可能就实现不了。这时候就需要考虑用函数公式或者VBA等其余方法实现。

下面这个excel行列互换案例也是论坛一个坛友的问题。

将左边的两行多列数据,通过公式实现右边的两列多行的效果。

通过两个公式就完成了Excel行列互换。当然公式的写法并不唯一。

}

    Columns对象和Rows对象分别表示整列单元格和整行单元格,是一种特殊的单元格区域对象。当这两个对象没有任何指定地址时,分别表示整个工作表的所有列和所有行。

当需要表示单列或单行时,可以使用以下方式表示:

当需要表示多行时,可以使用以下方式表示:

    值得注意的是,利用Columns对象表示多列时,不能使用数字,只能使用用英文字母表示的列标。

    当需要对某几列或某几行创建组时,可以使用Columns对象和Rows对象的Group方法。Group方法是可以多次使用的,即可以创建多个级别的分组。当需要取消分组时,可以使用Ungroup方法。

    除了Columns对象和Rows对象表示整列和整行外,还可以使用Range对象的EntireColumn属性和EntireRow属性表示单元格所在的整列和整行。比如本例表示E:F列,可以使用以下任意表达式表示:

    由于使用Columns对象表示多列时无法实现用数字,而通过Range对象的EntireColumn属性则使得程序更灵活,可以方便开发者对其使用数字进行循环,从而使得批量操作成为可能。如从第5列开始每隔3列将相邻两列进行组合,因而使用EntireColumn可以进行以下循环:

    单元格区域(Range)对象有两个属性Columns和Rows,它们所表示的是该单元格区域的整列和整行,如图所示。如以下表达式表示的是该区域的第2列,即C4:C10。

    如需要表示某个区域的多列时,比如B4:D10的第1和第2列,即B4:C10区域,可以采用以下表达式:

    当使用该种表达式表达多列时,VBA程序将会以B4: D10区域的第1列作为A列而重新给该区域的各列定义,也即是一个相对的位置表示。如图所示,该区域的第1列作为A列,该区域的第2列作为B列,如要表示该区域的第1和第2列,则为Columns(”B:C”)。

  •     Outline是工作表(Worksheet)对象的一个属性,同样也是一个对象。用它的3个重要属性可以对创建分组的格式进行设置。

  这三个属性分别对应了分级显示设置中的三个选项,如图所示。

如图所示,如何使用VBA将每月的工资明细按每3个月进行快速分组?

}

我要回帖

更多关于 vba复制指定列到另一个工作 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信