我冒这个问题失去声誉的风险,但我需要程序员而不是高级用户 . 我可以用PHP编写,但Excel VBA不在我的联盟中,我需要快速解决方案 .
我得到了一个包含2张“表格”和“数据”的Excel文件 . 在第一张纸上是一个“保存”按钮 . 当用户单击此按钮时,我需要执行以下操作:
-
复制工作表"Form"中不同列的数据(在本例中为C2和C4)
-
将数据粘贴到新行的工作表"Data"中,两列水平
-
清除工作表中的列"Form"
代码是:
Private Sub SaveButton_Click()
Application.ScreenUpdating = False
Dim r As Range
Set r = Sheets("Form").Range("C2,C4")
For Each cell In r
If IsEmpty(cell) Then
MsgBox ("Error - all boxes must be filled in!")
Cancel = True
Exit Sub
Exit For
End If
Next
Dim NextRow As Range
Set NextRow = Sheets("Data").Range("A2:L2").End(xlUp).Offset(1, 0)
Set NextRow = Sheets("Data").Range("A" & Rows.Count).End(xlUp).Offset(1,0)
Sheets("Form").Range("C2,C4").Copy
NextRow.PasteSpecial (xlValues)
MsgBox ("Data added successfully!")
Sheets("Form").Range("C2,C4").ClearContents
Application.CutCopyMode = False
Application.ScreenUpdating = True
end sub
我已经编写了一个脚本,但这些列是垂直复制的,而不是水平复制 .
2 回答
您希望表单单元格C2和C4最终位于数据表中的1个空行中
好 . 浏览Stackoverflow 3个小时后,我终于得到了我所需要的一切 . 我希望这会有助于其他人 .
整点是“Transpose:= True” .