Excel精英培训网

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

VBA 数据添加

[复制链接]
发表于 2017-3-22 10:58 | 显示全部楼层 |阅读模式
请教各位高手

想实现一个功能,在excel工作薄的第一个sheet页上做了一个按钮,第二个sheet页是数据存储页,通过在第一个sheet页中输入内容点击按钮实现内容插入到第二个sheet页最下面的空行,插入时需要判断是否有重复输入,重复的自动跳过。

目前写出的代码如下, 这里按钮添加在sheet2中,debug的时候发现rowNo2的值是对的,但是rowNo1取得公式中这个sheet1好像没起作用,所以取到的值不正确。

Private Sub Insert_Click()
Dim rowNo1, rowNo2, i As Integer
rowNo1 = Range("a" & Sheet1.Rows.Count).End(xlUp).Row + 1
rowNo2 = Range("a" & Sheet2.Rows.Count).End(xlUp).Row
For i = 2 To rowNo2 Step 1
    Sheet1.Cells(rowNo1, 1) = Sheet2.Cells(i, 1)
    Sheet1.Cells(rowNo1, 5) = Sheet2.Cells(i, 2)
    Sheet1.Cells(rowNo1, 6) = Sheet2.Cells(i, 3)
Next
MsgBox (rowNo1 & rowNo2)
End Sub

求高手指点行号取得以及重复判断的代码。
多谢指教!

发表于 2017-3-22 11:13 | 显示全部楼层
本帖最后由 Excel学徒123 于 2017-3-22 11:15 编辑

1、rowNo2这个需要+1,前面那个用不着+1,理清逻辑关系,还有 你msgbox出来的是第一次取值的位置,数据添加到sheet2之后,如果需要得到最后一行的行号,需要重新计算rowNo2的值了2、重复判断的有很多种方法,字典是不错的选择,当然也可以调用工作表函数COUNTIF或者match函数,如果两个函数得到的结果都大于0了就表示已经存在了
仅提过思路,代码自己去写
回复

使用道具 举报

 楼主| 发表于 2017-3-23 09:36 | 显示全部楼层
Excel学徒123 发表于 2017-3-22 11:13
1、rowNo2这个需要+1,前面那个用不着+1,理清逻辑关系,还有 你msgbox出来的是第一次取值的位置,数据添加 ...

谢谢您提供思路
回复

使用道具 举报

发表于 2017-3-25 15:36 | 显示全部楼层
你的rowNo1和rowNo2都是取的同一张表的数据,没有意义。
方便上传附件看下吗
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 11:27 , Processed in 0.237435 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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