不飞则已,一飞冲天;不鸣则已,一鸣惊人。这篇文章主要讲述将VBA转换为Google Apps脚本相关的知识,希望能为你提供帮助。
我有下面的VBA代码。我不知道它是如何工作的,但我想将其转换为Google表格。
我希望有人可以:
- 向我解释一下VBA正在做什么,以便我可以推断它足以将其编程为Google Apps脚本,
- 告诉我如何通过Google表格实现相同的VBA功能。
Function getData(targetName As String, targetSheet As String, targetDate)
Application.Volatile True
Dim res As Double
Dim col As Integer
Dim cell As Range
Dim names As RangeDim lastrow As LongWith ThisWorkbook.Worksheets(targetSheet)
lastrow = .Cells(.Rows.Count, "A").End(xlUp).Row
col = Application.Match(targetDate, .Range("4:4"), 0)
If col = 0 Then
getData = https://www.songbingjia.com/android/CVErr(xlErrNA)
Exit Function
End If
Set names = .Range(.Cells(4,"A"), .Cells(lastrow, "A"))For Each cell In names
If cell = targetName Then
res = res + cell.Offset(, col - 1)
End If
Next cell
End WithgetData = https://www.songbingjia.com/android/res
End Function
这是一个示例excel文件的链接,其中使用了该函数:https://www.dropbox.com/s/h5vcjv9tlh1vvg7/Resources%20and%20Projects%20Full%20Example.xlsm
答案虽然我不熟悉Google Apps脚本,但我可以帮助您完成第一部分。
该函数的点似乎是将所有在a列中找到的
name
与作为参数传入的targetName
匹配的值相加,并且在第4行中找到的date
与targetDate
匹配,name
也是参数。 (行由date
确定,列由double
确定。)然后将总值作为Function getData(targetName As String, targetSheet As String, targetDate)
Application.Volatile True 'I don't see a reason for this line
Dim res As Double
Dim col As Integer
Dim cell As Range
Dim names As RangeDim lastrow As LongWith ThisWorkbook.Worksheets(targetSheet) 'All ranges start with ThisWorkbook.'targetSheet'
lastrow = .Cells(.Rows.Count, "A").End(xlUp).Row 'Get the last row with data in column A to 'lastrow'
col = Application.Match(targetDate, .Range("4:4"), 0) 'Find 'targetDate' in row 4 and set it to 'col'
If col = 0 Then 'Couldn't find 'targetDate'
getData = https://www.songbingjia.com/android/CVErr(xlErrNA)'Function returns the appropriate error
Exit Function 'Exit the function after setting the return value
End If
Set names = .Range(.Cells(4, "A"), .Cells(lastrow, "A")) 'Setting the range from A4 to A'lastrow' to 'names'For Each cell In names 'Looping through every 'cell' in the 'names' range
If cell = targetName Then 'If the 'cell' value matches the 'targetName' passed in as a parameter
res = res + cell.Offset(, col - 1) 'Add the value from the column with the 'targetDate' to 'res'
End If
Next cell
End WithgetData = https://www.songbingjia.com/android/res'Return the total
End Function
返回。【将VBA转换为Google Apps脚本】这是一行一行的评论。
qazxswpoi
推荐阅读
- 通过Console App C#将照片发布到Facebook页面
- 在Jmeter for Oracle Application中获得不足的权限错误
- 如何修复TypeError(application_module__WEBPACK_IMPORTED_MODULE_1 ___ default.a不是构造函数)
- 如何解决 - 无法使用Automapper将Generic.List强制转换为Linq.IQueryable()
- 使用Automapper优化相关子查询
- 返回ApplicationUser对象或ApplicationUserId字符串的列表
- Spring @RequestMapping注释到不同的位置
- 使用Azure App Service Logging时是否需要blob StorageExceptions()
- 从密钥保险库将证书上载到App Service