我正在尝试记录我所拥有的表单处理的所有信息。每周都会更新表单,我想保留其中包含的数据的日志。下面我将从表单传输的数据编写到数据日志,但是它被设置为特定的行。
Sub DataLog()
'
' DataLog Macro
' Record sales in the data log.
'
'
Sheets("Cell History").Select
Range("A7").Select
ActiveCell.FormulaR1C1 = "=Form!R[-6]C[3]"
Range("C7").Select
ActiveCell.FormulaR1C1 = "=Form!RC[2]"
Range("D7").Select
ActiveCell.FormulaR1C1 = "=Form!R[1]C[1]"
Range("E7").Select
ActiveCell.FormulaR1C1 = "=Form!R[2]C"
Range("F7").Select
ActiveCell.FormulaR1C1 = "=Form!R[3]C[-1]"
Range("G7").Select
ActiveCell.FormulaR1C1 = "=Form!R[4]C[-2]"
Range("H7").Select
ActiveCell.FormulaR1C1 = "=Form!R[5]C[-3]"
Range("I7").Select
ActiveCell.FormulaR1C1 = "=Form!R[6]C[-4]"
Range("J7").Select
ActiveCell.FormulaR1C1 = "=Form!R[7]C[-5]"
Range("K7").Select
ActiveCell.FormulaR1C1 = "=Form!R[8]C[-6]"
Range("L7").Select
ActiveCell.FormulaR1C1 = "=Form!R[9]C[-7]"
Range("N7").Select
ActiveCell.FormulaR1C1 = "=Form!RC[-3]"
Range("O7").Select
ActiveCell.FormulaR1C1 = "=Form!R[1]C[-4]"
Range("P7").Select
ActiveCell.FormulaR1C1 = "=Form!R[2]C[-5]"
Range("Q7").Select
ActiveCell.FormulaR1C1 = "=Form!R[3]C[-6]"
Range("R7").Select
ActiveCell.FormulaR1C1 = "=Form!R[4]C[-7]"
Range("S7").Select
ActiveCell.FormulaR1C1 = "=Form!R[5]C[-8]"
Range("T7").Select
ActiveCell.FormulaR1C1 = "=Form!R[6]C[-9]"
Range("U7").Select
ActiveCell.FormulaR1C1 = "=Form!R[7]C[-10]"
Range("V7").Select
ActiveCell.FormulaR1C1 = "=Form!R[8]C[-11]"
Range("X7").Select
ActiveCell.FormulaR1C1 = "=Form!R[13]C[-22]"
Range("Y7").Select
ActiveCell.FormulaR1C1 = "=Form!R[13]C[-22]"
Range("Z7").Select
ActiveCell.FormulaR1C1 = "=Form!R[13]C[-22]"
Range("AA7").Select
ActiveCell.FormulaR1C1 = "=Form!R[13]C[-22]"
End Sub
因为我将每周更新一次,所以我想知道如何让Excel从第7行开始查找下一个空行。我目前正在使用Excel 2013.非常感谢所有帮助,谢谢:)
更新:
我使用Andy G的代码将其更改为:
Dim rng As Range
Set rng = Range("A100000").End(xlUp).Offset(1,0)
rng.Value = "orginal cell location"
我删除了第二个“.Offset(0,1)”,因为它将单元格第二次向右移动。
谢谢大家:)
答案 0 :(得分:3)
你可以从列中开始,然后找到最后一个带有值的单元格,然后再向下进一步找到下一个空单元格:
Range("A100000").End(xlUp).Offset(1,0).Select
100000是一个任意数字,如果您愿意,可以使用Cells.Rows.Count
。
但是,您应该存储对它的引用,而不是选择单元格,并使用Offset
将所有值插入同一行:
Dim rng As Range
Set rng = Range("A100000").End(xlUp).Offset(1,0)
rng.Offset(0,1).Value = "whatever"
选择细胞是非常低效的。