【问题标题】:Referencing the cell with the formula in it VBA用VBA中的公式引用单元格
【发布时间】:2020-01-26 18:04:12
【问题描述】:

我正在尝试构建一个函数,用作工作表中的固定参考点,以便能够在不改变 Hcom() 范围的创建函数中的值的情况下下拉公式: 1, 1, 1, !Hcom 进入 2, 2, 2, !Hcom 以此类推

如果用于第二个未修复的函数,我尝试将 rng 调暗为范围,我尝试编写 ThisCell 而不是 Thiscell,但 vba 会自动更正为 Thiscell。谷歌了一下。我尝试用 = 1 或 2 或 3 编写 If。我尝试过案例选择。

Function Hcom()
Dim rng as Range
Application.Volatile
Set rng = Application.Thiscell.Offset(0, 1)
Select Case rng
Case "SJUK", "VAB", "SEM.", "LEDIG", "RÖD D."
Hcom = Range("J7") / 5
Case Else
Hcom = ""
End Select
End Function

我希望它用 Offset(0,1) 引用自己,让它读取值列表。在找到我想要或不想要的值后,它应该等待单元格在工作表上更改吗? (第一次使用 Application.Volatile)而不是我得到#Value 以及当我从 VBA 运行时出现此错误

运行时错误“1004”: 对象'_Application'的方法'ThisCell'失败

调试后这一行被高亮显示

rng = Application.Thiscell.Offset(0, 1)

【问题讨论】:

  • 您需要将一个变量传递给您的函数。
  • 如果您在 VBA 中运行而不是作为 UDF 运行,则不能使用 Application.ThisCellRange("J7") 的值是多少?
  • 修复Thiscell的大写 - 添加一个新行Dim ThisCell,然后立即删除它。
  • @urdearboy 谢谢!已修复,但我仍然需要输入一个单元格,是否可以在不输入 vba 之外的任何内容的情况下引用公式所在的单元格?
  • Range("J7") 的值是多少? Hcom 应该在尝试除以 5 之前测试它是否是一个数字。

标签: excel vba function


【解决方案1】:

试试:

Function Hcom(YourOffset As Range, YourFixed As Range) As Variant
'Application.Volatile
Select Case YourOffset
    Case "SJUK", "VAB", "SEM.", "LEDIG", "RÖD D."
        Hcom = YourFixed / 5
    Case Else
        Hcom = ""
End Select
End Function

【讨论】:

  • 我试过了,但我必须在每一行输入单元格才能使函数工作,每张纸上大约有 31-140 个。
【解决方案2】:
Function Hcom(ThisCell As Range)

Dim rng As Range
Application.Volatile
Set rng = Application.ThisCell.Offset(0, 1)
Select Case rng
Case "SJUK", "VAB", "SEM.", "LEDIG", "RÖD D."
Hcom = Range("J7") / 5
Case Else
Hcom = ""
End Select
End Function

添加变量?到第一行通过引用自身然后偏移来修复它。? 不知道为什么会这样:)

【讨论】:

  • 这真的修复了吗?你从不使用ThisCell
  • @Bigben 我这样做了,现在我输入 Hcom(cell*) 并且它可以工作。我可以根据需要拖动和填充。出于某种原因 :) Cell = 带有 Hcom 的 Cell
  • 作为参数的ThisCellApplication.ThisCell 不同。你从来没有真正使用过作为参数传递的ThisCell。您当前的代码等同于您的原始代码。尝试使用与其中包含公式的单元格不同的单元格作为参数 - 你会明白我的意思。
  • @Bigben 好!我在另一个单元格中尝试了它,并且由于它正在寻找的值不是在那里,它变成了 0。我不确定你想让我做什么。我仍然必须给公式一个范围才能工作,但最好为每一行添加一个范围
  • 您在哪个单元格中输入公式,您输入的确切公式是什么?
猜你喜欢
  • 2015-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-19
  • 1970-01-01
  • 2019-01-30
相关资源
最近更新 更多