vba - VBA 中的公式并在 VBA 中使用
问题描述
我正在尝试执行我的 exel 图表,我使用以下代码:
ActiveChart.Axes(xlValue, xlPrimary).MinimumScale = Sheets("Data").Range("K5").Value
我想在代码中使用 K5 值(不要保存在单元格中)
所以我做了以下事情:
Dim MaxY As Integer
MaxY = ("=MAX(K3+50,ROUNDUP(IF(OR(ISBLANK('Station info'!C12),ISBLANK('Station info'!C8)),MAX(ABS(MIN(Data!B3:B10000)),ABS(MAX(Data!B3:B10000))),IF(('Station info'!C8-MAX(ABS(MIN(Data!B3:B10000)),ABS(MAX(Data!B3:B10000)))-MAX(Data!B3:B10000)+MIN(Data!B3:B10000))<'Station info'!C12,'Station info'!C8-'Station info'!C12+1,MAX(ABS(MIN(Data!B3:B10000)),ABS(MAX(Data!B3:B10000))))),0))")
ActiveChart.Axes(xlValue, xlPrimary).MinimumScale = Sheets("Data").MaxY.Value
end sub
它不起作用,但如果我输入 K5 并参考 K5,则公式有效。
我该如何解决这个问题并定义公式并将其保存在 VBA 代码中?
谢谢
解决方案
用这个。您的公式中可能需要一个额外的括号。MaxY
是一个变量,所以你想直接访问它的值;它不“属于”工作表。
Sub x()
Dim MaxY As Integer
With Range("A1")
.Formula = "=MAX(K3+50,ROUNDUP(IF(OR(ISBLANK('Station info'!C12),ISBLANK('Station info'!C8)),MAX(ABS(MIN(Data!B3:B10000)),ABS(MAX(Data!B3:B10000))),IF(('Station info'!C8-MAX(ABS(MIN(Data!B3:B10000)),ABS(MAX(Data!B3:B10000)))-MAX(Data!B3:B10000)+MIN(Data!B3:B10000))<'Station info'!C12,'Station info'!C8-'Station info'!C12+1,MAX(ABS(MIN(Data!B3:B10000)),ABS(MAX(Data!B3:B10000))))),0))"
MaxY = .Value
.Clear
End With
End Sub
推荐阅读
- angular - Angular 7/8,1 个依赖项正在干扰另一个依赖项,如何避免在使用它的模块内部加载深度依赖项?或嵌入
- haskell - stack new 命令无法下载 lts-14.1 的构建计划
- list - 从列表中获取偶数位置的元素
- php - 改变数组顺序的数组的递归差分
- scala - 将键值对的 RDD 保存到 CSV 文件
- r - R不承认一个因素的水平是相同的。有没有办法做到这一点?
- python - 从哪里开始创建一个使用 PyTorch 在张量中保存所需更改的方法?
- c# - SSIS数据流出错时查找列名
- r - 如何将每一行与相应列中的缩放器相乘?
- ruby-on-rails - 过滤时保持 check_box_tag 处于选中状态