【发布时间】:2022-02-16 00:08:54
【问题描述】:
我什至不知道如何问这个问题;希望这个解释足够清楚。
使用 VBA 录制的宏,打开相对选择,我有一个使用 countif($C$656:C656,[@Column1]) 的公式(实际上是表头 Column1 正下方的单元格)
我面临的问题是公式不能转换为变量位置,因为我不知道如何使用相对代码来实际告诉 vba 一直搜索表格列,直到您直接到达单元格在标题下方。它必须是相对的,因为该表并不总是在第 655 行上创建,并且表本身具有不同数量的行,所以我不能告诉 VBA R[1]C[1]:R[367]c[1] 例如。
以下是在单元格本身中输入的公式 (B656)。
=IF(B655="Column2",[@Column1],
IF(COUNTIF($C655:C$656,[@Column1]),
(CONCATENATE(TEXT([@Date],"yyyy-m-d"),
"_",TEXT([@Date],"hhmm-s"),
"_R-"&COUNTIF($C655:C$656,[@Column1]),
IF([@[TRANSACTION FEE ID]]="","","_"&[@[TRANSACTION FEE ID]]))),
[@Column1]))
下面是打开相关按钮的 VBA 翻译:
'Enter formula in cell under header (INCLUDES REPEATED DATES FOR DIFFERENT SPREADS)
Range("TblAccountTradeHistory[[#Headers],[Column2]]").Select
ActiveCell.Offset(1, 0).Range("A1").Select
ActiveCell.FormulaR1C1 = _
"=IF(R[-1]C=""Column2"",[@Column1]," & Chr(10) & "IF(COUNTIF(R[-1]C3:R656C[1],[@Column1])," & Chr(10) & "(CONCATENATE(TEXT([@Date],""yyyy-m-d"")," & Chr(10) & """_"",TEXT([@Date],""hhmm-s"")," & Chr(10) & """_R-""&COUNTIF(R[-1]C3:R656C[1],[@Column1])," & Chr(10) & "IF([@[TRANSACTION FEE ID]]="""","""",""_""&[@[TRANSACTION FEE ID]])))," & Chr(10) & "[@Column1]))"
ActiveCell.Offset(1, 0).Range("A1").Select
'^^^^^^^^^^^^^^^NOTE: THERE'S A SEARCH ALL CELLS ABOVE THIS ROW THROUGH THE HEADER, BUT ABOVE FORMULA SAYS "R[-1]C3:R656C" WILL THAT MESS UP FOR TRANSACTIONS THAT AREN'T THAT LOW?
有人想知道如何完成这项工作吗?
【问题讨论】:
-
您能否分享单元格
B664所需的公式,就好像它不在表格中一样?
标签: excel vba excel-formula