为简化起见,我在Excel工作簿中有两张纸。
如果我在sheet1的一个单元格中写入=sheet2!R3C2
,则单元格正确获取sheet2的单元格R3C2的值。
我想概括一下,对于VBA中的许多行,所以我的代码是:
row = XX a long
temp = "=sheet2!R" & row - 1 & "C2"
Range("c" & row).Value = temp
但是当我使用这段代码时,单元格的值(行,3)是=sheet2!'RXXC2'
如何删除单引号?
答案 0 :(得分:1)
Range("C" & row).Formula = temp
会在您的单元格中生成正确的公式。
你应该考虑做什么而不是循环
Range("A1").Formula = "=Sheet2!$B1"
Range("A1").Resize(100, 1).Formula = Range("A1").Formula
第一行在活动工作表的单元格A1中插入公式=Sheet2!$B1
。 $
美元符号确保该列不会增加(同样适用于数字)
然后第二行从A1向下重复100行的公式,替换B
列后的数字
所以现在
A1 =Sheet2!B1
A2 =Sheet2!B2
A3 =Sheet2!B3
...
此外,你有点不清楚你真正想要做什么,所以考虑使用Evaluate()
函数将公式值保存到另一个范围的另一个选项
Range("c" & row).Value = Evaluate(temp)
或Range("C" & Row).Value = [temp]
答案 1 :(得分:0)
您想要设置公式,而不是值:
Range("c"&row).FormulaR1C1 = temp
答案 2 :(得分:0)
尝试撰写Range("c" & row).FormulaR1C1=temp