体验零代码搭建

如何将数据工作表中的数据移至不同的工作表?

网友投稿  ·  2024-01-06 10:01  ·  在线excel  ·  阅读 270


Excel是许多职场人士常用的烦恼之源,学习相关技巧需耗费大量时间。简道云作为一款办公神器,能很好地替代Excel。它是一个在线表单和数据管理工具,支持PC端和手机微信浏览器操作。除此之外,简道云还能辅助企业进行流程审批、财务报销、人事管理等业务管理,满足不同需求。

Q我在一个主工作表中导入并存放数据,想要将这些数据分别转移到不同的工作表中,如所示,在工作表Data中存放着各超市的销售数据,现在要将这些数据分别移至具有与超市名称同名的工作表中,即“东区超市”中的数据全部移至工作表“东区超市”中,对于“北区超市”和“西区超市”也是如此。如何使用VBA代码实现一次转移数据?

Q我在一个主工作表中导入并存放数据,想要将这些数据分别转移到不同的工作表中,如所示,在工作表Data中存放着各超市的销售数据,现在要将这些数据分别移至具有与超市名称同名的工作表中,即“东区超市”中的数据全部移至工作表“东区超市”中,对于“北区超市”和“西区超市”也是如此。如何使用VBA代码实现一次转移数据?

如何将数据工作表中的数据移至不同的工作表?

A:可以使用下面的代码实现,大多数代码的功能见代码中的注释。

SubCopyDataToWorksheet()

‘声明代表存放数据工作表的变量

Dim strSourceSheet As String

‘声明代表要接收数据的工作表的变量

Dim strDestinationSheet As String

‘声明代表工作表最后一行的变量

Dim lngLastRow As Long

‘存放数据的工作表名

strSourceSheet = “Data”

‘选取数据工作表

Sheets(strSourceSheet).Visible = True

Sheets(strSourceSheet).Select

‘选取与接收数据的工作表同名的单元格

Range(“B2″).Select

‘选取的单元格不为空,则继续循环

Do While ActiveCell.Value <>””

‘当前单元格值赋给工作表名变量

strDestinationSheet = ActiveCell.Value

‘选取当前单元格所在的数据行

ActiveCell.Offset( , -1).Resize(1,ActiveCell.CurrentRegion.Columns.Count).Select

‘复制数据行

Selection.Copy

‘选取接收数据的工作表

Sheets(strDestinationSheet).Visible =True

Sheets(strDestinationSheet).Select

‘获取当前工作表最后一行

lngLastRow =LastRowInOneColumn(“A”)

‘选取工作表最后一行之后的空单元格

Cells(lngLastRow + 1, 1).Select

‘粘贴数据

Selection.PasteSpecial xlPasteValues

‘去除复制后单元格框外的虚线

Application.CutCopyMode = False

‘选取数据工作表成为当前工作表

Sheets(strSourceSheet).Select

‘将当前单元格移至下一个与接收数据的工作表同名的单元格

ActiveCell.Offset(1, 1).Select

Loop

End Sub

‘获取工作表中最后一行行号

Public FunctionLastRowInOneColumn(col)

Dim lastRow As Long

With ActiveSheet

lastRow = .Cells(.Rows.Count,col).End(xlUp).Row

End With

LastRowInOneColumn = lastRow

End Function

说明:在示例工作表Data中,我们将各个超市分别放在一起。在实际导入数据时,如果相同名称的数据不在一起也没有关系。当然,你可以使用排序功能将它们放置在一起。


Excel2010如何自定义数字格式? << 上一篇
2024-01-05 22:01
Excel2010如何填充日期?
2024-01-06 10:01
下一篇 >>

相关推荐