Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2732|回复: 8

[已解决]VBA自动保存问题

[复制链接]
发表于 2015-2-11 09:52 | 显示全部楼层 |阅读模式
VBA自动保存效果:保存到《现金日记账》的E列最后一个空单元所在行,G2存到《现金日记账》的A列,H2存到《现金日记账》的B列,D2存到《现金日记账》的C列,B6:B的物品名称合并存到《现金日记账》的E列,F5存到《现金日记账》的I列。效果图在附件。

最佳答案
2015-2-11 23:54
加了一句

Sub x()
Dim k, x
With Sheets("现金日记账")
  If Application.CountIf(.[c:c], Range("d2")) > 0 Then Exit Sub
  x = .Cells(Rows.Count, 1).End(3).Row + 1
  .Cells(x, 1) = Range("g2"): .Cells(x, 2) = Range("h2")
   For k = 6 To Range("b45000").End(3).Row
    st = st & "、" & Cells(k, 2)
   Next
.Cells(x, 5) = Mid(st, 2): .Cells(x, 5).Font.Size = 8
.Cells(x, 3) = Range("d2"): .Cells(x, "i") = Range("f5")
End With
MsgBox "保存成功"
End Sub

VBA自动保存问题.zip

23.17 KB, 下载次数: 2

发表于 2015-2-11 10:15 | 显示全部楼层
  1. Sub x()
  2. Dim k, x
  3. With Sheets("现金日记账")
  4.   x = .Cells(Rows.Count, 1).End(3).Row + 1
  5.   .Cells(x, 1) = Range("g2"): .Cells(x, 2) = Range("h2")
  6.    For k = 6 To Range("b45000").End(3).Row
  7.     st = st & "、" & Cells(k, 2)
  8.    Next
  9. .Cells(x, 5) = Mid(st, 2): .Cells(x, 5).Font.Size = 8
  10. .Cells(x, 3) = Range("d2"): .Cells(x, "i") = Range("f5")
  11. End With
  12. MsgBox "保存成功"
  13. End Sub
复制代码

VBA自动保存问题.rar

32.02 KB, 下载次数: 8

回复

使用道具 举报

 楼主| 发表于 2015-2-11 22:59 | 显示全部楼层
26759761@qq.com 发表于 2015-2-11 10:15

老师:帮加一个判断,当编号“付3-1”已经存在重复时,结束代码运行,不保存是。
回复

使用道具 举报

发表于 2015-2-11 23:54 | 显示全部楼层    本楼为最佳答案   
加了一句

Sub x()
Dim k, x
With Sheets("现金日记账")
  If Application.CountIf(.[c:c], Range("d2")) > 0 Then Exit Sub
  x = .Cells(Rows.Count, 1).End(3).Row + 1
  .Cells(x, 1) = Range("g2"): .Cells(x, 2) = Range("h2")
   For k = 6 To Range("b45000").End(3).Row
    st = st & "、" & Cells(k, 2)
   Next
.Cells(x, 5) = Mid(st, 2): .Cells(x, 5).Font.Size = 8
.Cells(x, 3) = Range("d2"): .Cells(x, "i") = Range("f5")
End With
MsgBox "保存成功"
End Sub

VBA自动保存问题.rar

32.67 KB, 下载次数: 13

回复

使用道具 举报

 楼主| 发表于 2015-2-12 04:06 | 显示全部楼层
26759761@qq.com 发表于 2015-2-11 23:54
加了一句

Sub x()

老师:再麻烦你加个提示      MsgBox "该单据号码已经存在!请不要重复录入。"
回复

使用道具 举报

发表于 2015-2-12 08:35 | 显示全部楼层
4楼红色字体改成
  1. If Application.CountIf(.[c:c], Range("d2")) > 0 Then MsgBox "该单据号码已经存在!请不要重复录入。": Exit Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2015-2-12 09:52 | 显示全部楼层
26759761@qq.com 发表于 2015-2-11 23:54
加了一句

Sub x()

老师:还有一个问题,保存到《现金日记账》的E列非空单元下第一个空单元所在行。要不他将“上期结转”覆盖了。
`@IU~9B6PIOF3P2IZNDV2WF.png

点评

没保存一次,都加一行,写 "上期结转"? 还是只有第五行写?  发表于 2015-2-12 09:55
回复

使用道具 举报

 楼主| 发表于 2015-2-12 10:13 | 显示全部楼层
龙送农 发表于 2015-2-12 09:52
老师:还有一个问题,保存到《现金日记账》的E列非空单元下第一个空单元所在行。要不他将“上期结转”覆盖 ...

只有第五行有“上期结转”。
回复

使用道具 举报

 楼主| 发表于 2015-2-12 10:20 | 显示全部楼层
龙送农 发表于 2015-2-12 09:52
老师:还有一个问题,保存到《现金日记账》的E列非空单元下第一个空单元所在行。要不他将“上期结转”覆盖 ...

如先判断《现金日记账》的E列非空单元下第一个空单元所在行,然后保存就更好。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-19 02:30 , Processed in 0.672200 second(s), 14 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表