数据
第一页用于数据输入。每行代表一张服务票。每列将表示有关服务事件的数据,如序列号或型号。
期望的结果
对于包含特定字段(列a ~“票证号”)中数据的每一行,Excel将基于模板创建一个新的工作表(服务票证),并将相应行中的数据放入指定的单元格中。
提前感谢您提供的任何帮助。
我首先要说的是,您应该小心处理这一点,因为工作簿中的工作表数量是有限制的。但这里有一些vb中的代码。它应该为您提供在vba中完成它的逻辑。在引用工作表和单元格时会有一些不同。
您需要声明正在阅读的工作表
Dim ws As Excel.Worksheet
Set ws = ea.Worksheets(1)
它可能从工作表索引0开始,因此设置ws=ea。工作表(0)或者有类似Excel的东西。应用程序。活动表
下面是循环行并检查列A的值的逻辑。
dim lRow as integer
Do While lRow <= ws.UsedRange.Rows.Count
If ws.Range("A" & lRow).Value <> "" Then Then
'If cell A is not blank we then call the worksheet add function.
'Pass the name you want the worksheet and the page setup arguments.
WorksheetAdd ws.Range("A" & lRow).Value, xlPaperLetter, xlPortrait
ws.name = ws.Range("A" & lRow).Value
End If
lRow = lRow + 1
ws.Range("A" & lRow).Activate
Loop
您将需要这样的Worksheetad函数
Private Sub WorksheetAdd(szJobNumber As String, Papersize As XlPaperSize, PageOrientation As XlPageOrientation)
Dim bDisplayAlerts As Boolean
On Error GoTo ErrorHandler
'Add worksheet to workbook.
Set ws = ea.Worksheets.Add
ws.Name = szJobNumber
With ws.PageSetup
.Orientation = PageOrientation
.LeftFooter = "&D"
.CenterFooter = "&A"
.RightFooter = "Page &P of &N"
.Papersize = Papersize
End With
On Error GoTo 0
Exit Sub
ErrorHandler:
If Err.Number = 1004 Then
If MsgBox("There has been an error(#1004). Contact support. Excel is not installed or produced an error. Also, check for default printer.",vbCritical, "Information") = vbOK Then
'Unload frmPTReports
Exit Sub
End If
Else
Err.Raise Err.Number, Err.Source, Err.Description
End If
End Sub
我正在处理一个Excel工作簿,我希望工作簿为每一行新数据创建一个新工作表。下面的代码确实可以做到这一点,但问题是Excel使用每一行第一列中的文本作为新工作表的名称。我想更改它并使另一列成为新工作表名称的来源。请告知我需要更改哪一行才能完成此操作。谢谢您的帮助!
我有如下数据集: 这是我们数据库中每个帐户的备忘录集合。“1abc”中的1表示帐户ID,字母表示一些文本。总共有177列和1866行,但并非每行都有177列之前的值,有些行可能只有两列数据。 我需要每一列下拉到A列的底部,以便所有数据只占用A列。例如,B列中的所有数据都将插入A列中的最后一个值之后。C列中的数据将插入A列中的最后一个值之后,它已填充了来自B的数据,依此类推。 最后,它应该是这样的(
如图所示,我有原始数据(A2:C6),我想根据B列中的每个唯一值创建一个新工作簿。在该示例中,“颜色”列中有4种颜色和3种唯一颜色,因此我将创建3个不同的新工作簿(Red.xlsx、Yellow.xlsx和Orange.xlsx),如图底部所示。 所以我想到的代码如下,但不确定如何检查工作簿是否已经创建: 我的代码的问题是,它会创建重复的工作簿,如红色。在本例中,xlsx两次。对于如何解决问题或采
我正在尝试为Excel文件中的每一行创建一个单独的XML文档。第1行列出了标记名,A列标识了每行的文档标题。 我在VBA方面相当缺乏经验,但这正是我迄今为止根据对类似问题的多个答案得出的结论。 我还没有完成“GetElementsByTagName”部分,因为该部分导致了问题。对于下一行,我得到错误“Object variable or With block variable not set”。
我有以下代码,可以很好地将相关数据复制到我的工作表中。我为J列中的每个唯一部门手动创建每个工作表,然后运行此宏。我想要一个基于J列中的唯一值动态创建工作表的宏。我在网上找到了很好的资源,但当它到达已经为其创建了工作表的行时,我发现的资源似乎会出错。在手动创建其他工作表之前,我包含了我当前使用的代码以及我的清单表的屏幕截图
首先,让我说这个网站是天赐之物! 我有一系列每月B2:AS40的数据。月份在A2:AS2中,A2:A40中是姓名列表,所有这些都在“Sheet1”中 经过之前在这里的一些搜索,我想出了以下内容,脚本为每一行制作一个新图表,创建一个标题,并以6个月的间隔放入MajorGridline,但是没有绘制数据。我这辈子都不知道为什么!! 请帮帮忙 样本数据: 将脚本更改为以下内容后: 脚本不会在每次运行时都