插入具有不同参数的公式 - 错误 13 类型不匹配
insert a formula with varying parameteres - error 13 type mismatch
我在编程方面很新,而且我在这个领域是自学的(从互联网上复制了很多代码行,大部分是从这里复制的!)。
我必须在新的 sheet 中插入一些计算,并且在它们之间插入一个 vlookup 公式,其中每个 sheet 中的 table 范围都会发生变化。由于我是写代码的初学者,当我需要写一些新的东西时,我会用它来录制一个宏,然后修改它直到达到我的目标。
在这种情况下我记录了公式:
ActiveCell.FormulaR1C1 = "=VLOOKUP(R[16]C[-6],R[14]C[-6]:R[19]C[-5],2,TRUE)"
修改为:
Dim n, i As Integer
Dim mCell As Range
n = 7
i = 13726
Set mCell = ActiveSheet.Cells(3 + n + 8, 2)
Cells(4, 15).Formula = "=VLOOKUP(" & Cells(3, 15) & ";" & Range(Cells(3 + n + 8, mCell.Column), Cells(i - 1, n + 1)) & ";2;TRUE)"
在将其插入主宏之前。这是宏的简化剪辑(我修复了变量,在原始变量中它们会随着每个新工作簿而改变)。
当我 运行 它时,我收到一个 "error 13 - type mismatch"。
找答案做了很多"try&error",我查了一遍又一遍,改了很多公式:
- 单元格(4,15) / 范围("O4")
- .Formula / .FormulaLocal / .Value
- "=VLOOKUP(" / "=BUSCARV(" --> 我正在使用西班牙语的 excel,在 sheet 中,函数被翻译
- 单元格(3,15) 和范围(...) / 单元格(3,15)。地址和范围(...) / 单元格(3,15)。地址和范围(...) .地址
- , / ; --> 在sheet中我必须使用“;”,在VBA中被自动记录为“,”
- TRUE / VERDADERO --> 仍然是西班牙点
我写了所有排列(或组合?:-P)和 运行 随后所有的排列(144 种变化),总是收到相同的错误类型。
所以,问题可能出在其他地方...我错过了什么?
非常感谢!!
Excel 面向 English,如果您使用的是 Spanish 版本,那么首先您需要从 Formula
到 FormulaLocal
。在公式中使用 ;
而不是 ,
作为函数参数之间的分隔符时,您需要使用 FormulaLocal
.
其次,你 dim Dim n, i As Integer
,这意味着 i As Integer
而 n As Variant
,你需要定义 Dim n As Long, i As Long
.
代码
Cells(4, 15).FormulaLocal = "=VLOOKUP(" & Cells(3, 15).Address & ";" & Range(Cells(3 + n + 8, mCell.Column), Cells(i - 1, n + 1)).Address & ";2;TRUE)"
我在编程方面很新,而且我在这个领域是自学的(从互联网上复制了很多代码行,大部分是从这里复制的!)。
我必须在新的 sheet 中插入一些计算,并且在它们之间插入一个 vlookup 公式,其中每个 sheet 中的 table 范围都会发生变化。由于我是写代码的初学者,当我需要写一些新的东西时,我会用它来录制一个宏,然后修改它直到达到我的目标。
在这种情况下我记录了公式:
ActiveCell.FormulaR1C1 = "=VLOOKUP(R[16]C[-6],R[14]C[-6]:R[19]C[-5],2,TRUE)"
修改为:
Dim n, i As Integer
Dim mCell As Range
n = 7
i = 13726
Set mCell = ActiveSheet.Cells(3 + n + 8, 2)
Cells(4, 15).Formula = "=VLOOKUP(" & Cells(3, 15) & ";" & Range(Cells(3 + n + 8, mCell.Column), Cells(i - 1, n + 1)) & ";2;TRUE)"
在将其插入主宏之前。这是宏的简化剪辑(我修复了变量,在原始变量中它们会随着每个新工作簿而改变)。
当我 运行 它时,我收到一个 "error 13 - type mismatch"。 找答案做了很多"try&error",我查了一遍又一遍,改了很多公式:
- 单元格(4,15) / 范围("O4")
- .Formula / .FormulaLocal / .Value
- "=VLOOKUP(" / "=BUSCARV(" --> 我正在使用西班牙语的 excel,在 sheet 中,函数被翻译
- 单元格(3,15) 和范围(...) / 单元格(3,15)。地址和范围(...) / 单元格(3,15)。地址和范围(...) .地址
- , / ; --> 在sheet中我必须使用“;”,在VBA中被自动记录为“,”
- TRUE / VERDADERO --> 仍然是西班牙点
我写了所有排列(或组合?:-P)和 运行 随后所有的排列(144 种变化),总是收到相同的错误类型。
所以,问题可能出在其他地方...我错过了什么? 非常感谢!!
Excel 面向 English,如果您使用的是 Spanish 版本,那么首先您需要从 Formula
到 FormulaLocal
。在公式中使用 ;
而不是 ,
作为函数参数之间的分隔符时,您需要使用 FormulaLocal
.
其次,你 dim Dim n, i As Integer
,这意味着 i As Integer
而 n As Variant
,你需要定义 Dim n As Long, i As Long
.
代码
Cells(4, 15).FormulaLocal = "=VLOOKUP(" & Cells(3, 15).Address & ";" & Range(Cells(3 + n + 8, mCell.Column), Cells(i - 1, n + 1)).Address & ";2;TRUE)"