【发布时间】:2017-04-25 01:07:14
【问题描述】:
我正在尝试确定在我的 VBA 脚本中的单元格内生成 3 个值的计算的最佳方法:
当前格式的脚本:
Function BuildValuesString(colIndex As String, rows As String) As String
Dim val As Variant
For Each val In Split(rows, ",")
If Cells(val, colIndex) <> "" Then BuildValuesString = BuildValuesString & Cells(val, colIndex).Value & ","
Next val
End Function
Function BuildNullStrings(numNullStrings As Long) As String
Dim iNullStrings As Long
For iNullStrings = 1 To numNullStrings
BuildNullStrings = BuildNullStrings & "" & ","
Next iNullStrings
End Function
Sub WriteCSVFile2()
Dim My_filenumber As Integer
Dim logSTR As String
My_filenumber = FreeFile
logSTR = logSTR & "Srv" & ","
logSTR = logSTR & "E-mail" & ","
logSTR = logSTR & "Env." & ","
logSTR = logSTR & "Protect" & ","
logSTR = logSTR & "DB" & ","
logSTR = logSTR & "# VMs" & ","
logSTR = logSTR & "Name" & ","
logSTR = logSTR & "Cluster" & ","
logSTR = logSTR & "VLAN" & ","
logSTR = logSTR & "NumCPU" & ","
logSTR = logSTR & "MemoryGB" & ","
logSTR = logSTR & "C" & ","
logSTR = logSTR & "D" & ","
logSTR = logSTR & "App" & ","
logSTR = logSTR & "TotalDisk" & ","
logSTR = logSTR & "Datastore" & ","
logSTR = logSTR & Chr(13)
logSTR = logSTR & BuildValuesString("C", "18,19,20,21,22")
logSTR = logSTR & BuildValuesString("C", "26,27,28,29,30,31,32,33")
logSTR = logSTR & Chr(13)
logSTR = logSTR & BuildValuesString("C", "18,19,20,21,22")
logSTR = logSTR & BuildValuesString("C", "37,38,39,40,41,42,43,44")
logSTR = logSTR & Chr(13)
logSTR = logSTR & BuildValuesString("C", "18,19,20,21,22")
logSTR = logSTR & BuildValuesString("C", "48,49,50,51,52,53,54,55")
Open "Z:\Requests(Test)\" & ThisWorkbook.Name & ".csv" For Append As #My_filenumber
Print #My_filenumber, logSTR
Close #My_filenumber
End Sub
此 VBA 脚本正在将 Excel 表格单元格中的数据导出到 CSV 文件中,我希望它还计算单元格“C”“32”或“C”“33”中存在的数字并放置在CSV 文件中“TotalDisk”标题下的后续单元格。
这些值将是由一列分隔的 3 个数字;例如:20、30、10。我希望将这 3 个数字(在示例中为 60)相加的结果放在下一个单元格中。
C-32 中需要计算的原因OR C-33 是数据只会填其中一个。因此,我还需要对单元格 C-43 OR C-44 和 C-54 OR C-55 执行相同的操作。
感谢您提供的任何信息
【问题讨论】:
-
请给出该函数的输入/参数示例,以及both desired 输出和actual 输出示例(并简要说明它们有何不同,或您遇到的任何特定错误/问题)
-
@DavidZemens 在 VBScript 导出到 CSV 文件的 Excel 文档中创建计算字段显然对我来说更容易 - 但即便如此,是否可以在字段中进行计算在 Excel 中基于用逗号分隔的值?单个单元格将包含数据:20、20、10,我只看到基于单独单元格中存在的值进行的计算,即 C4+C5+C6= 结果。不知道从哪里开始。
标签: vba excel csv export-to-csv