我不断陷入一些(我认为会是)简单的宏。字面上只是尝试将一系列单元格中的PasteValues复制到另一个单元格中,同时使用“偏移”将输入放入另一个工作表上可用的最后一行。
大图,我正在尝试在Excel中创建一个“输入”选项卡,然后将采用我的各种健康状况。适应值并将它们插入工作簿中的其他选项卡,以便能够跟踪时间。下面是我正在谈论的“输入”标签的屏幕截图。[1]
有点有效的VBA如下:
Sub DataWarehouseCL()
Sheets("Input").Range("B11").Copy Sheets("Cardio Logs").Range("A1").End(xlDown).Offset(1, 0)
Sheets("Input").Range("B2").Copy Sheets("Cardio Logs").Range("B1").End(xlDown).Offset(1, 0)
Sheets("Input").Range("C11:E11").Copy Sheets("Cardio Logs").Range("C1:E1").End(xlDown).Offset(1, 0)
Range("B11:E11").Select
Selection.ClearContents
Sheets("Cardio Logs").Select
Range("B2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
ActiveWindow.SmallScroll Down:=-255
Range("B2").Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Sheets("Input").Select
Range("B2").Select
End Sub
但是我觉得这有点多余......并且不想过度使用它并随即解决问题。低于此的VBA是我认为应该工作但仍然给我一个语法错误的那个。
Sub DataWarehouseWL()
Sheets("Input").Range("B6").Copy Sheets("Workout Logs").Range("A1").End(xlDown).Offset(1, 0).PasteSpecial(xlPasteValues)
Sheets("Input").Range("B2").Copy Sheets("Workout Logs").Range("B1").End(xlDown).Offset(1, 0).PasteSpecial(xlPasteValues)
Sheets("Input").Range("C6:F6").Copy Sheets("Workout Logs").Range("C1:F1").End(xlDown).Offset(1, 0).PasteSpecial(xlPasteValues)
Range("B6:F6").Select
Selection.ClearContents
Sheets("Input").Select
Range("B2").Select
End Sub
不确定我的描述是否有任何意义。
[Input Tab][2]
[One of the tabs that I'd like to populate using Input Tab][3]
答案 0 :(得分:0)
使用直接价值转移来传递xlValues
。
Sub DataWarehouseWL()
WorkSheets("Workout Logs").Range("A1").End(xlDown).Offset(1, 0) = _
WorkSheets("Input").Range("B6").Value
WorkSheets("Workout Logs").Range("B1").End(xlDown).Offset(1, 0) = _
WorkSheets("Input").Range("B2").Value
WorkSheets("Workout Logs").Range("C1:F1").End(xlDown).Offset(1, 0) = _
WorkSheets("Input").Range("C6:F6")
Range("B6:F6").ClearContents 'what worksheet does this belong to...?
Sheets("Input").Select
Range("B2").Select
End Sub
复制,粘贴值和格式的最简单方法是复制不连续单元格的并集,其中将一个离线空白单元格添加到原始范围。在没有看到你的数据的情况下,除了假设列Z为空之外,我无法提出任何建议,
Sub DataWarehouseWL()
WorkSheets("Input").Range("B6, Z6").Copy Destination:=WorkSheets("Workout Logs").Range("A1").End(xlDown).Offset(1, 0)
WorkSheets("Input").Range("B2, Z2").Copy Destination:=WorkSheets("Workout Logs").Range("B1").End(xlDown).Offset(1, 0)
WorkSheets("Input").Range("C6:F6, Z6").Copy Destination:=WorkSheets("Workout Logs").Range("C1").End(xlDown).Offset(1, 0)
Range("B6:F6").Select
Selection.ClearContents
Sheets("Input").Select
Range("B2").Select
End Sub