excel - 无法将 VBA 字符串转换为 Excel 单元格公式
问题描述
尝试使以下代码工作。由于某种原因返回运行时错误“1004”:应用程序定义或对象定义错误。
代码如下:
Sub UpdateLinks()
Dim lastFlight, lastMis, logBook, studentCode As String
Dim i, j, k, numRows As Integer
Dim wb0 As Workbook
Dim studentSheet As Worksheet
Set wb0 = ActiveWorkbook
Set studentSheet = wb0.Worksheets("STUDENTS")
numRows = studentSheet.Range("A5").CurrentRegion.Rows.Count
studentCode = studentSheet.Cells(8, 2).Value
lastFlight = "=MAIOR('\\server\# FLTLOG_EXPORT\[" & studentCode & ".xlsx]Status'!$A$3:$A$219;1)"
lastMis = "=PROC(2;1/(1-É.CÉL.VAZIA('\\server\# FLTLOG_EXPORT\[" & studentCode & ".xlsx]Status'!$C$3:$C$230));'\\server\# FLTLOG_EXPORT\[" & studentCode & ".xlsx]Status'!$C$3:$C$230)"
logBook = "'\\server\# FLTLOG_EXPORT\[" & studentCode & ".xlsx]Desvios'!$Q$15"
ActiveSheet.Cells(8, 4).Formula = lastFlight
End Sub
公式是葡萄牙语,MAIOR 是 LARGE,PROC 是 LOOKUP。代码停在:
ActiveSheet.Cells(8, 4).Formula = lastFlight
请帮忙。亲切的问候。
解决方案
首先请注意,如果您声明
Dim i, j, k, numRows As Integer
only numRows
isInteger
但所有其他都是 type Variant
。和写法完全一样:
Dim i As Variant, j As Variant, k As Variant, numRows As Integer
在 VBA 中,您需要为每个变量指定一个类型。此外,Excel 的行数超过了 的行数Integer
,因此您必须Long
改用。在 VBA中使用也没有任何好处,Integer
所以我建议总是使用Long
:
Dim i As Long, j As Long, k As Long, numRows As Long
这同样适用于在一行中声明的其他多个变量。
ActiveWorkbook
另一个建议是尽可能避免ActiveSheet
。请注意,ActiveWorkbook
具有焦点 / 的工作簿位于顶部。这可以通过单个用户单击轻松更改。您可能打算使用的是ThisWorkbook
哪个是编写此 VBA 代码的工作簿(并且它永远不会改变)。
而不是为您的对象ActiveSheet.Cells
明确指定工作簿和工作表。Cells
喜欢studentSheet.Cells
或类似的东西。
对于您的实际问题
请注意,studentCode & ".xlsx
如果要在公式中使用该文件,则需要打开该文件。
确保你打开它
Dim wb As Workbook
Set wb = Workbooks.Open("\\server\# FLTLOG_EXPORT\" & studentCode & ".xlsx"
然后,您可以在没有路径的情况下在公式中使用它:
lastFlight = "=MAIOR('[" & studentCode & ".xlsx]Status'!$A$3:$A$219;1)"
推荐阅读
- java - PBO 缓冲区内容是什么意思?
- javascript - 如何使用 json 正文发送 post 请求,其中正文仅包含字符串而不是键值对?
- python - TensorFlow:在不同输出形状的数据集之间交替
- perfect - 完美助手 - 导入现有包时出错
- python - pyqt如何使用unittest检查登录名和密码以及结果?
- firebase - 索引未在 firebase 中定义
- ruby - 如何更新实例变量的值?
- ansible - 如何对同一目录中的多个文件执行 dos2unix 命令?
- python - 嵌套引号的Python文档表示法?
- angular - 如何在 videogular2 中播放本地视频文件