ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 271|回复: 12

保存数据

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-5-26 15:51 | 显示全部楼层 |阅读模式
本帖最后由 徐海洋 于 2024-5-29 14:42 编辑

求助:点“保存”,数据存入“明细表”,照片存入文件夹“照片”中,“明细表”证号不能重复,请高师赐教,谢谢
图1.jpg
简历保存.7z (71.74 KB, 下载次数: 0)


简历保存.7z

81.38 KB, 下载次数: 4

TA的精华主题

TA的得分主题

发表于 2024-5-26 17:34 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
Sub mysave()
Dim rng As Range
    k = Sheet2.Cells(Rows.Count, "a").End(xlUp).Row + 1
With Sheet1
Set rng = Sheet2.Cells.Find(.Range("c5"))
    If rng Is Nothing Then
    Sheet2.Range("a" & k) = k - 2
    Sheet2.Range("b" & k) = .Range("c2")
    Sheet2.Range("c" & k) = .Range("e2")
    Sheet2.Range("d" & k) = .Range("e3")
    Sheet2.Range("e" & k) = "'" & .Range("c4")
    Sheet2.Range("f" & k) = "'" & .Range("c5")
    Sheet2.Range("g" & k) = .Range("f4")
    Sheet2.Range("h" & k) = .Range("g2")
    Sheet2.Range("i" & k) = .Range("c3")
    Sheet2.Range("j" & k) = .Range("g3")
    Sheet2.Range("k" & k) = .Range("f5")
    Sheet2.Range("l" & k) = .Range("h5")
Else
MsgBox "证件号码已经存在"
: End
End If
End With
Call 导出图片
MsgBox "保存完毕!"
End Sub
Sub 导出图片()
On Error Resume Next
Application.DisplayAlerts = False
Application.ScreenUpdating = False
pth = ThisWorkbook.Path & "\照片\"
For Each shp In ActiveSheet.Shapes
Debug.Print shp.Name
Debug.Print shp.Type
If shp.Type = 1 Or shp.Type = 13 Then
n = n + 1
shp.Copy
With ActiveSheet.ChartObjects.Add(O, O, shp.Width, shp.Height).Chart
.Parent.Select
.Paste

.Export pth & [c2] & [c5].Value & ".jpg"
.Parent.Delete
End With
End If
Next
App1ication.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

简历保存.rar

94.72 KB, 下载次数: 10

试一下

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-5-26 20:07 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
Qs18 发表于 2024-5-26 17:34
Sub mysave()
Dim rng As Range
    k = Sheet2.Cells(Rows.Count, "a").End(xlUp).Row + 1

谢谢老师,真是论坛藏高师
老师,请再修改一下!!!
1,保存后,清空“登记表
2,如果修改内容,点“保存”,同“身份证号”,覆盖保存

TA的精华主题

TA的得分主题

发表于 2024-5-26 21:07 | 显示全部楼层

Sub mysave()
Dim rng As Range
    k = Sheet2.Cells(Rows.Count, "a").End(xlUp).Row + 1
With Sheet1
If .Range("c5") = "" Then
MsgBox "请把信息补充完整!"
End
End If
Set rng = Sheet2.Cells.Find(.Range("c5"))
    If rng Is Nothing Then
    Sheet2.Range("a" & k) = k - 2
    Sheet2.Range("b" & k) = .Range("c2")
    Sheet2.Range("c" & k) = .Range("e2")
    Sheet2.Range("d" & k) = .Range("e3")
    Sheet2.Range("e" & k) = "'" & .Range("c4")
    Sheet2.Range("f" & k) = "'" & .Range("c5")
    Sheet2.Range("g" & k) = .Range("f4")
    Sheet2.Range("h" & k) = .Range("g2")
    Sheet2.Range("i" & k) = .Range("c3")
    Sheet2.Range("j" & k) = .Range("g3")
    Sheet2.Range("k" & k) = .Range("f5")
    Sheet2.Range("l" & k) = .Range("h5")
Else
MsgBox "证件号码已经存在"
: End
End If

End With
    Call 导出图片
    Call 清空
MsgBox "保存完毕!"
End Sub
Sub 修改()
Dim rng As Range
Dim k
With Sheet1
If .Range("c5") = "" Then
MsgBox "请把信息补充完整!"
End
End If
Set rng = Sheet2.Cells.Find(.Range("c5"))
If rng Is Nothing Then
    MsgBox "查无此人无需修改,请点击保存"
    End
End If
    k = rng.Row
    Sheet2.Range("b" & k) = .Range("c2")
    Sheet2.Range("c" & k) = .Range("e2")
    Sheet2.Range("d" & k) = .Range("e3")
    Sheet2.Range("e" & k) = "'" & .Range("c4")
    Sheet2.Range("f" & k) = "'" & .Range("c5")
    Sheet2.Range("g" & k) = .Range("f4")
    Sheet2.Range("h" & k) = .Range("g2")
    Sheet2.Range("i" & k) = .Range("c3")
    Sheet2.Range("j" & k) = .Range("g3")
    Sheet2.Range("k" & k) = .Range("f5")
    Sheet2.Range("l" & k) = .Range("h5")

End With
    Call 导出图片
    Call 清空
MsgBox "修改成功!"
End Sub

Sub 清空()
    With Sheet1
    .Range("c2") = ""
    .Range("e2") = ""
    .Range("e3") = ""
    .Range("c4") = ""
    .Range("c5") = ""
    .Range("f4") = ""
    .Range("g2") = ""
    .Range("c3") = ""
    .Range("g3") = ""
    .Range("f5") = ""
    .Range("h5") = ""
    End With
End Sub
Sub 导出图片()
On Error Resume Next
Application.DisplayAlerts = False
Application.ScreenUpdating = False
pth = ThisWorkbook.Path & "\照片\"
For Each shp In ActiveSheet.Shapes
Debug.Print shp.Name
Debug.Print shp.Type
If shp.Type = 1 Or shp.Type = 13 Then
n = n + 1
shp.Copy
With ActiveSheet.ChartObjects.Add(O, O, shp.Width, shp.Height).Chart
.Parent.Select
.Paste

.Export pth & [c2] & [c5].Value & ".jpg"
.Parent.Delete
End With
End If
Next
App1ication.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
PixPin_2024-05-26_21-05-29.gif

简历保存.rar

102.67 KB, 下载次数: 14

试一下是不是您需要的

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-5-27 09:17 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
Qs18 发表于 2024-5-26 21:07
Sub mysave()
Dim rng As Range
    k = Sheet2.Cells(Rows.Count, "a").End(xlUp).Row + 1

谢谢老师,照片怎么没清空呢?

TA的精华主题

TA的得分主题

发表于 2024-5-27 10:22 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
徐海洋 发表于 2024-5-27 09:17
谢谢老师,照片怎么没清空呢?

加一段代码就可以了

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-5-27 10:51 | 显示全部楼层
Qs18 发表于 2024-5-27 10:22
加一段代码就可以了

老师这段代码复杂哟,费了老师不少心血,海洋在此表示真诚的感谢

TA的精华主题

TA的得分主题

发表于 2024-5-27 11:32 | 显示全部楼层
不熟练,参考别人的代码练习了下
录制_2024_05_27_11_31_47_851.gif

TA的精华主题

TA的得分主题

发表于 2024-5-27 11:33 | 显示全部楼层
JSA代码,供参考
  1. function 简历保存(){
  2.         let sh=Range("a1").Worksheet;
  3.         let bt=Sheets.Item("明细表").Range("b2:l2").Value2[0];
  4.         let res=bt.reduce((res,x,i)=>{
  5.                 let rng=Cells.Find(x);
  6.                 if (rng!=null) res[i+1]=rng.Offset(0,1).Value2;
  7.                 return res;
  8.         },["=ROW()-ROW($A$2)"]);
  9.         with(Sheets.Item("明细表")){
  10.                 if (Cells.Find(res[5])==null){
  11.                         let r1=Range("a"+ Rows.Count).End(xlUp).Row + 1;
  12.                         Range(`a${r1}`).Resize(1,res.length).Value2=res;
  13.                         for (let shp of ActiveSheet.Shapes){
  14.                                 if (shp.Type==1){
  15.                                         shp.Copy();
  16.                                         let cht=sh.ChartObjects().Add(0, 0, shp.Width, shp.Height).Chart;
  17.                                         cht.Paste();
  18.                                         cht.Export(`${ThisWorkbook.Path}\\照片\\${res[1]}${res[5]}.jpg`);
  19.                                         cht.Parent.Delete();
  20.                                 }
  21.                         }
  22.                         alert("保存完毕。")
  23.                 }else{
  24.                         alert("姓名已存在,不能保存。");
  25.                 }
  26.         }
  27. }
复制代码

TA的精华主题

TA的得分主题

发表于 2024-5-27 11:33 | 显示全部楼层
附件,WPS打开测试

简历保存.zip

66.17 KB, 下载次数: 9

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

本版积分规则

关闭

最新热点上一条 /1 下一条

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-6-17 18:09 , Processed in 0.042447 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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