在这里的几篇帖子的帮助下,我能够运行下面的代码,创建工作表,但我需要从主工作表中填充模板中的数据,并创建超链接
Option Explicit
Sub SheetsFromTemplate()
Dim wsMASTER As Worksheet, wsTEMP As Worksheet, wasVISIBLE As Boolean
Dim shNAMES As Range, Nm As Range
With ThisWorkbook
Set wsTEMP = .Sheets("Template")
wasVISIBLE = (wsTEMP.Visible = xlSheetVisible)
If Not wasVISIBLE Then wsTEMP.Visible = xlSheetVisible
Set wsMASTER = .Sheets("Master")
Set shNAMES = wsMASTER.Range("C4:C" & Rows.Count).SpecialCells(xlConstants)
Application.ScreenUpdating = False
For Each Nm In shNAMES
If Not Evaluate("ISREF('" & CStr(Nm.Text) & "'!A1)") Then
wsTEMP.Copy After:=.Sheets(.Sheets.Count)
ActiveSheet.Name = CStr(Nm.Text)
End If
Next Nm
wsMASTER.Activate
If Not wasVISIBLE Then wsTEMP.Visible = xlSheetHidden
Application.ScreenUpdating = True
End With
MsgBox "All sheets created"
End Sub
尝试以下操作:
Sub SheetsFromTemplate()
Dim wsMaster As Worksheet, wsTemp As Worksheet, wasVisible As Boolean
Dim shNames As Range, Nm As Range, wsEntry As Worksheet, entryName
With ThisWorkbook
Set wsTemp = .Sheets("Template")
wasVisible = (wsTemp.Visible = xlSheetVisible)
If Not wasVisible Then wsTemp.Visible = xlSheetVisible
Set wsMaster = .Sheets("Master")
Set shNames = wsMaster.Range("C4:C" & Rows.Count).SpecialCells(xlConstants)
Application.ScreenUpdating = False
For Each Nm In shNames
entryName = Nm.Text
Set wsEntry = Nothing 'EDIT
On Error Resume Next 'ignore error if no sheet with this name
Set wsEntry = .Sheets(entryName)
On Error GoTo 0 'stop ignoring errors
If wsEntry Is Nothing Then
wsTemp.Copy After:=.Sheets(.Sheets.Count)
Set wsEntry = .Sheets(.Sheets.Count) 'get the copy
wsEntry.Name = CStr(Nm.Text)
End If
With wsEntry
'transfer/update values from Master sheet
.Range("B2").Value = entryName
.Range("B3").Value = Nm.Offset(0, 1)
'...etc
wsMaster.Hyperlinks.Add Anchor:=Nm, Address:="", _
SubAddress:=wsEntry.Range("A1").Address(, , , True), _
TextToDisplay:=Nm.Text
End With
Next Nm
wsMaster.Activate
If Not wasVisible Then wsTemp.Visible = xlSheetHidden
Application.ScreenUpdating = True
End With
MsgBox "All sheets created"
End Sub
数据 第一页用于数据输入。每行代表一张服务票。每列将表示有关服务事件的数据,如序列号或型号。 期望的结果 对于包含特定字段(列a ~“票证号”)中数据的每一行,Excel将基于模板创建一个新的工作表(服务票证),并将相应行中的数据放入指定的单元格中。 提前感谢您提供的任何帮助。
我正在处理一个Excel工作簿,我希望工作簿为每一行新数据创建一个新工作表。下面的代码确实可以做到这一点,但问题是Excel使用每一行第一列中的文本作为新工作表的名称。我想更改它并使另一列成为新工作表名称的来源。请告知我需要更改哪一行才能完成此操作。谢谢您的帮助!
我无法使用 apache poi eclipse 在我创建的 java excel 中创建工作表
问题内容: 我有几个要转储为excel工作簿(xls / xlsx)中新工作表的csv文件。我该如何实现? Google搜索并找到“ pyXLwriter”,但该项目似乎已停止。当我尝试“ pyXLwriter”时,我想知道是否有其他选择/建议/模块? 非常感谢。 [编辑] 这是我的解决方案:(任何人都有更精简的pythonic解决方案?请发表评论。thx) 问题答案: 不知道 您 所说的“更精简
addSheet([string $sheetName]); 示例 $config = [ 'path' => './filePath' ]; $excel = new \Vtiful\Kernel\Excel($config); // 此处会自动创建一个工作表 $fileObject = $excel->fileName("tutorial01.xlsx"); $fileO
null null 我没有任何可以作为主键字段。 这里的“eme_request”和“eme_attachment”是主表。 我想知道如何插入表格? 这些表(eme_request、eme_gf_relevent、eme_non_gf_relevent、eme_attachment)将在一个表单请求中插入。 所以我不了解如何在主表中生成主键以及如何将主键作为外键插入子表?