连接+自动填充+固定单元+ RCell +多列参考问题

时间:2018-02-23 21:44:32

标签: excel-vba vba excel

我相信我在适当地识别固定单元格或操作顺序方面存在问题。我花了一个半小时研究一下,却无法找到答案。问题只出现在连接行中:我无法让VBA识别出固定单元格插入到公式的文本中(我只能在单元格中得到它)。它是从数据库中每日导出的Excel报告,它将日期插入C2。我将B列中的文件名与当天结束时的文件夹位置,日期和C列中每个匹配单元格中的唯一文件组标识符连接起来。出于保密目的,我已使用FOLDER替换了文件夹名称的文本。我可以手动连接和自动填充,但我只想输入一次公式!任何帮助都会有所帮助。

谢谢! - 约翰

Columns("A:A").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("C2").Select
ActiveCell.FormulaR1C1 = "=TEXT(RC[-1],""yyyy mm dd"")"
Range("C2").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
ActiveSheet.Paste
Application.CutCopyMode = False
Range("A5").Select
ActiveCell.FormulaR1C1 = 
    "=CONCATENATE(""FOLDER,("$C$2"), FOLDER"",RC[1])"
Dim lastRow As Long
lastRow = Range("B" & Rows.Count).End(xlUp).Row
Range("A5").Select
Selection.AutoFill Destination:=Range("A5:A" & lastRow), Type:=xlFillDefault
Range("A5:A" & lastRow).Select
Selection.Copy
Range("B5").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
Columns("A:A").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlToLeft
Rows("1:2").Select
Selection.Delete Shift:=xlUp
Range("B3").Select

1 个答案:

答案 0 :(得分:0)

我不知道这是否有效,因为公式期望通过RC表示法引用,但您可以尝试:

ActiveCell.FormulaR1C1 = 
    "=CONCATENATE(""FOLDER,(" & "$C$2" & "), FOLDER"",RC[1])"

作为插入固定单元格的替代方法,一个选项是将该单元格的值分配给字符串变量而不是插入它。

Dim dateVal as string

dateVal = Range("C2").Value2

Range("A5").FormulaR1C1 = 
    "=CONCATENATE(""FOLDER,(" & dateVal & "), FOLDER"",RC[1])"