excel - 在将值与设置变量进行比较后,如何使此宏创建新工作表?
问题描述
我正在编写一个宏,在将 A 列中的值与一组变量进行比较后,将数据拆分到另一张表中。
A 列包含所有工单编号。我需要宏为每个新工作订单创建一个新工作表,并将所有行复制到该工作表。它需要使用在 A 列和 B 列中找到的值的串联来命名工作表,然后将与该工单关联的所有行复制到新工作表。
前缀是工单。前缀 12581 应该有自己的工作表,名为 12581-4,前缀 12695 应该有自己的工作表,名为 12695-4。应将 12581 的所有行复制到名为 12581 的工作表中。
这需要一个循环,因为要筛选 39000 行。
我想我需要为工单/前缀声明一个变量,并让宏将其与 A 列中的值进行比较。如果 A 列中的值与变量不匹配,它将创建一个新工作表并复制所有与该工单关联的列。
到目前为止我的代码:
Sub SortDataByWOxyz()
Option Explicit
Dim Variable_One as Integer
Dim Variable_Two As Integer
Dim cell As Range
Dim Sht_name As String
Dim intLastRow As Integer
Dim intSuffix As Integer
Set Variable_One = 0
Set intSuffix = .Range("b2", .Range("b2").End(xlDown))
intLastRow = ActiveSheet.UsedRange.RowsCount
Set cell = Range ("a2:a" & intLastRow) 'this is so the macro
doesn't keep trying to process rows without values
For Each cell In Sheets(1).Range("A2:F39986") 'Ok, another issue
is that I can't be certain the range of every report I am applying
this macro to. Is there some way to make the range globally applicable, like:
Dim SourceRange As Range
Set SourceRange= .Range("a2", .Range("A2").End(xlDown).End(xlToRight))
If cell.Value <> Variable_One Then
'Grab prefix - suffix
'Create sheet with sheet name
'Copy data
Sheets.Add.Name = Range(a2:a" & intSuffix).value
cell.EntireRow.CopyDestination:=Sheets(Sht_name).Range("a" & cell.Row)
Else: cell.EntireRow.Copy Destination:=Sheets(Sht_name).Range("a" & cell.Row)
End If
Next
End Sub
解决方案
推荐阅读
- pandas - Pandas 使用索引将行值替换为零
- swift - 使用金属着色器移动图像
- r - 更改标题:带 ggplot 的 mcmc_trace 函数
- python - 不知道为什么pytorch.tensor的对应存储每次resize都会改变?
- node.js - 如何解决同时运行多个脚本的问题
- linux - 从 shell 脚本解析日期以计算证书到期前的天数
- julia - 使用 Jump 获取不可约不一致子系统 (IIS) - Julia
- javascript - 是否可以使用 JavaScript 将网站上的现有价格替换为转换后的价格?
- python - 我得到了烧瓶 sqlalchemyerror sqlalchemy.exc.InvalidRequestError: Multiple classes found for path
- php - 如何在 laravel 8 中禁用自动登录并重定向到带有成功消息的简单页面(注册后)