excel - 如何将单元格数据从模板表发送到 Microsoft excel 中的主表?
问题描述
我正在为一家咖啡馆创建生产管理表。它有一个名为 production 的主工作表,Production 有一个新的客户按钮,它创建一个新工作表并以编程方式复制发票模板并粘贴到新创建的工作表中。我想要的所有东西都会自动发送并汇总每个项目的总数,从所有工作表到主生产工作表。我一般可以这样做,但是当使用按钮插入新模板(在新创建的工作表中)时,单击它有点棘手。
Private Sub CommandButton1_Click()
If TextBox1.Value = "" Or TextBox2.Value = "" Then
If MsgBox("Name and Address are Important", vbQuestion + vbOKOnly) <> vbYes Then
Exit Sub
End If
End If
TotalSheets = ThisWorkbook.Worksheets.Count
CheckSheet = TextBox1.Value
For i = 1 To TotalSheets
If LCase(ThisWorkbook.Worksheets(i).Name) = LCase(CheckSheet) Then
If MsgBox("This Customer Name Already Exists, Choose a different Name", vbQuestion + vbOKOnly) <> vbYes Then
Exit Sub
End If
End If
Next
Sheets.Add after:=Sheets(Sheets.Count)
Sheets(ActiveSheet.Name).Name = TextBox1.Value
Worksheets("Invoice").Cells.Copy Worksheets(ActiveSheet.Name).Cells
End Sub
解决方案
因此,如果我做对了,您将有一个名为 的主工作表Production
、一个用作发票模板的工作表,Invoice
以及另外两个名为Recipes
和的工作表Nav
。
现在我假设你没有更多的工作表。
每次创建新客户时,都会根据Invoice
模板创建一个新工作表。您需要一些代码来计算所有单个订单的总和,然后将其填充到工作Production
表中。
我的建议是这样的:
Sub updateTotalOrders()
Dim sht As Worksheet
Dim sumOfOrders As Long
sumOfOrders = 0
For Each sht In ThisWorkbook.Worksheets
If sht.Name <> "Production" And sht.Name <> "Invoice" And sht.Name <> "Nav" Then 'add here any other sheets that should be excluded from the sum
sumOfOrders = sumOfOrders + sht.Range("C4")
End If
Next sht
ThisWorkbook.Worksheets("Production").Range("") = sumOfOrders 'Use whichever range you want
End Sub
我提供的代码显然只适用于“三明治面包”,但可以很容易地扩展到包括所有其他项目。我只是给你一个关于如何继续的想法。
总而言之,此代码基本上循环遍历所有工作表并检查它们是否对应于客户。如果他们这样做,那么它会更新一个总和。当循环停止时,最终结果将传递给Production
.
推荐阅读
- python - 将PANDAS DataFrame中的数据转换为Python中的矩阵的最佳方法
- powerbi - 如何修复我的嵌套 If 语句以显示所有所需的输出,而不仅仅是少数几个?
- ios - IOS:如何更新通知权限以请求一个以前未请求的新选项?
- ios - 暂时禁用通用剪贴板
- python - 如果 cumsum 大于值,则重新启动 cumsum 并获取索引
- angular - 角度原理图无法创建 .ts 文件
- perl - Perl 命名空间问题:在模块中使用导出的函数不起作用
- wpf - DragLeave EventArgs中e.GetPosition(...)的返回值是什么意思?
- rust - 从函数返回盒装特征对象
- amazon-web-services - Spark 结构化流和 s3 存储桶中的数据