大佬教程收集整理的这篇文章主要介绍了协助创建基于模板生成新工作表的 Excel 宏,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我对 VBA 非常陌生 - 这不是让某人为我工作的懒惰尝试,我很高兴获得自己做这件事的工具。
我有一个由特定列标题下的数据组成的工作表。我想创建一个宏来生成一个新工作表(在一个全新的工作簿中),并根据预定义的模板将原始工作表中的数据复制到新工作簿中。原始工作表中的列标题将与模板中各自的列标题不匹配。每行中的数据由文本以及正数和负数组成。当原始工作表中的数据复制到新工作簿时,我希望每一行都由一个完全空白的行分隔,并带有这个警告:每个“空白”行必须有一个由相同数字组成的单个数字条目其上方的行,但其符号相反(例如,如果原始数据在 E 列中包含 -300,则下方的空白行在 E 列中必须具有 +300)。所有数字将始终/仅出现在一列(例如 E 列)中。
我希望这些信息足以让您入门!
前言:这不是一个完整的答案,但在评论中写的文字太多。
听起来您想使用 For Loop 编写代码以使用 Range.Copy 复制一列数据。
我没有足够的信息来真正编写示例程序,但我无法猜测结构如下所示:
Sub FillFromTemplate()
Dim NewWB As Workbook,NewWS As Worksheet
Set NewWB = Application.Workbooks.Add
'Creates a new workbook
ThisWorkbook.Sheets("Template").Copy after:=NewWB.Sheets(NewWB.Sheets.Count)
'Copies the template over to the new workbook
Set NewWS = NewWB.Sheets(NewWB.Sheets.Count)
'Grabs our new sheet so we can edit the data
ThisWorkbook.Sheets("Original").columns("E").Copy DesTination:=NewWs.columns("E")
'Copy over column E from the desired sheet to the new sheet.
For i = 2 To NewWs.Cells(Rows.Count,"E").End(xlUp).Row * 2 Step 2
'iterate through the column on the new sheet,adding spaces
NewWs.Rows(i + 1).Insert shift:=xlShiftDown
'Somewhat inefficient,but simple and easy to implement.
'A better but more complex method would be pasTing the data while skipping cells
If NewWs.Cells(i,"E") <> "" And IsNumeric(NewWs.Cells(i,"E")) Then
'If its a number,put the value in the cell below with the sign flipped.
NewWs.Cells(i + 1,"E") = NewWs.Cells(i,"E").Value * -1
End If
Next i
End Sub
显然,这缺少要立即在您的工作簿中运行的关键信息。但我希望它具有教育意义,可以帮助您开始自己编写代码。
以上是大佬教程为你收集整理的协助创建基于模板生成新工作表的 Excel 宏全部内容,希望文章能够帮你解决协助创建基于模板生成新工作表的 Excel 宏所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。