分享

使用VBA完成单元格高级操作(复制、粘贴、分列汇总)(Advanced range operation with VBA)

 hdzgx 2019-11-19
  1. Option Explicit
  2. '1 单元格输入
  3. Sub t1()
  4. Range("a1") = "a" & "b"
  5. Range("b1") = "a" & Chr(10) & "b" '换行答输入
  6. End Sub
  7. '2 单元格复制和剪切
  8. Sub t2()
  9. Range("a1:a10").Copy Range("c1") 'A1:A10的内容复制到C1
  10. End Sub
  11. Sub t3()
  12. Range("a1:a10").Copy
  13. ActiveSheet.Paste Range("d1") '粘贴至D1
  14. End Sub
  15. Sub t4()
  16. Range("a1:a10").Copy
  17. Range("e1").PasteSpecial (xlPasteValues) '只粘贴为数值
  18. End Sub
  19. Sub t5()
  20. Range("a1:a10").Cut
  21. ActiveSheet.Paste Range("f1") '粘贴到f1
  22. End Sub
  23. Sub t6()
  24. Range("c1:c10").Copy
  25. Range("a1:a10").PasteSpecial Operation:=xlAdd '选择粘贴-加
  26. End Sub
  27. Sub T7()
  28. Range("G1:G10") = Range("A1:A10").Value
  29. End Sub
  30. '3 填充公式
  31. Sub T8()
  32. Range("b1") = "=a1*10"
  33. Range("b1:b10").FillDown '向下填充公式
  34. End Sub
  1. Option Explicit
  2. Sub c1()
  3. Rows(4).Insert
  4. End Sub
  5. Sub c2() '插入行并复制公式
  6. Rows(4).Insert
  7. Range("3:4").FillDown
  8. Range("4:4").SpecialCells(xlCellTypeConstants) = ""
  9. End Sub
  10. Sub c3()
  11. Dim x As Integer
  12. For x = 2 To 20
  13. If Cells(x, 3) <> Cells(x + 1, 3) Then
  14. Rows(x + 1).Insert
  15. x = x + 1
  16. End If
  17. Next x
  18. End Sub
  19. Sub c4()
  20. Dim x As Integer, m1 As Integer, m2 As Integer
  21. Dim k As Integer
  22. m1 = 2
  23. For x = 2 To 1000
  24. If Cells(x, 1) = "" Then Exit Sub
  25. If Cells(x, 3) <> Cells(x + 1, 3) Then
  26. m2 = x
  27. Rows(x + 1).Insert
  28. Cells(x + 1, "c") = Cells(x, "c") & " 小计"
  29. Cells(x + 1, "h") = "=sum(h" & m1 & ":h" & m2 & ")"
  30. Cells(x + 1, "h").Resize(1, 4).FillRight
  31. Cells(x + 1, "i") = ""
  32. x = x + 1
  33. m1 = m2 + 2
  34. End If
  35. Next x
  36. End Sub
  37. Sub c44()
  38. '个人方法
  39. Dim x As Integer
  40. Dim t As Integer
  41. t = Range("c65536").End(xlUp).Row
  42. For x = t To 2 Step -1
  43. If Cells(x, 3) <> Cells(x - 1, 3) Then
  44. Rows(x).Insert
  45. Cells(Cells(x, "C").Offset(1, 0).End(xlDown).Row + 1, "C") = Cells(Cells(x, "C").Offset(1, 0).End(xlDown).Row, "C") & " 小计"
  46. Cells(Cells(x, "H").Offset(1, 0).End(xlDown).Row + 1, "H") = _
  47. Application.Sum(Range(Cells(x, "h").Offset(1, 0), Cells(x, "H").Offset(1, 0).End(xlDown)))
  48. End If
  49. Next x
  50. End Sub
  51. Sub dd() '删除小计行
  52. Columns(1).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
  53. End Sub

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多