【发布时间】:2017-09-22 12:27:54
【问题描述】:
我正在尝试自动化会计流程。每个月我都会收到一份费用清单,我必须计算每个人的总金额。一个单元格将包含一些文本,说明它是什么以及哪个员工带来了这个项目,旁边的一个将指定金额。
我创建了一个脚本,它将查看列表并为我提供每位员工的总费用。可能的名称在文档的范围内指定。
问题在于,其中一些单元格有时会包含两个姓名,然后将金额添加到两个员工的总金额中。
问题: 如果单元格包含我列表中的 两个 名称,是否可以创建一个 If 语句来查看我的姓名列表并“做某事”。
编辑:这是我已经创建的循环
Sub AfstemLoop()
Worksheets("Main").Activate
Dim NamesAmount As Integer
Dim NameString As String
Dim TotalAmount As Double
Dim TableStart As Integer
'Count Amount of names
NamesTotal = 0
For i = 1 To 100
If Worksheets("Main").Cells(i + 1, 7) <> "" Then
NamesTotal = NamesTotal + 1
End If
Next
'Count entries
EntriesTotal = 0
For i = 1 To 1000
If Worksheets("Main").Cells(2 + i, 1) <> "" Then
EntriesTotal = EntriesTotal + 1
End If
Next
'Define table start
TableStart = EntriesTotal + 4
'Calculate total amount
For i = 1 To NamesTotal
TotalAmount = 0
NameString = Worksheets("Main").Cells(i + 1, 7)
For j = 1 To EntriesTotal
CellText = Worksheets("Main").Cells(j + 2, 3)
If InStr(1, CellText, NameString) Then
Amount = Worksheets("Main").Cells(j + 2, 4)
TotalAmount = TotalAmount + Amount
'Test to see if cell has been used (in case of spelling mistakes)
Worksheets("Main").Cells(j + 2, 4).Interior.Color = 5296274
End If
Next
Worksheets("Main").Cells(TableStart + i, 3) = NameString
Worksheets("Main").Cells(TableStart + i, 4) = TotalAmount
Sum = TotalAmount + Sum
Next
Worksheets("Main").Cells(TableStart + NamesTotal + 1, 3) = "Total"
Worksheets("Main").Cells(TableStart + NamesTotal + 1, 4) = Sum
End Sub
【问题讨论】:
-
可以添加已有的代码吗?这样会更容易提出解决方案。
-
我添加了我拥有的代码