excel里用vba怎么单元格数据变成批注

举报 回答
excel里用vba怎么单元格数据变成批注
问在线客服
扫码问在线客服

比张表格sheet1数据a1张三应b1迟扣款用vba应sheet2表格b2张三应f2单元格面批注内容迟扣款sheet1sheet2名乱序求vba代码

  • 回答数

    8

  • 浏览数

    3,855

举报 回答

8个回答 默认排序
  • 默认排序
  • 按时间排序

没找到满意答案?去问秘塔AI搜索
取消 复制问题
已采纳
VBA写起来是不难,但Sheet2塞几千个批注?太卡了!不如直接用VLOOKUP,从Sheet1查数据,新列写个公式:扣款≠0就显示迟到扣款,以后还能加早退、旷工等多类型,不想看就隐藏~批注还得一个个悬停看,打印给领导或员工?根本没法整啊!
取消 评论
VBA脱离Excel就无法运行。不知道你是在什么情况下取单元格数据?

如果是在jsp里取,可以使用jxl或poi,不会启动excel就能取单元格数据
取消 评论
初步判断
if sheet1.cells(i, j) = "value" and sheet1.cells(i, j - 1) = "tag" then这一句中,后一个cells参数j-1=0,就错了
取消 评论
  VBA 多单元格数据的引用  举例说明:引用 A1:A2, C2:C4, E5, F6 四个区域的数据,并输出到 A9:A15 。

  1、先定义一个单元格变量Rng;?
1 Dim Rng As Range  2、用Union() 函数将多个单元格及区域联合起来,并赋值给单元格变量 Rng;
1 Set Rng = Union([A1:A2]茶定铁各半刚牛附其, [C2:C4], [E5], [F6])  3、定义一个数组Arr 用于存放联合单元格区域 Rng 的数据;
1 ReDim Arr(***.count - 1)  4、用 For Each 循环将 Rng 中的数据依次存入数组 Arr 中;运棚
12345 Dim xx, i% 亩凯 迅悄唤For Each xx In Rng Arr(i) = xx i = i + 1 Next  5、用 Resize() 及转置函数 Transpose() 将数组 Arr 输出到 A9:A15。
1 [A9].Resize(UBound(Arr) + 1) = ***.transpose(Arr)  参考下图

  
取消 评论
这个方法最简单但不是傻瓜式的方法,需要你对Excel和MySQL都有一点点了解。  当然,我在最后提供了一个作为例子的Excel文件,但仍然需要你会写MySQL的INSERT语句,这样才能调试可能出现的错误。  1.在需要导入的数据最后一列,写入一个Excel公式(例子中是“SQL”下面的单元格,“SQL”是不必要的,仅仅是为了看起来方便)。  =CONCATENATE(insert
into
employee(name,birthday,email,hobby)values(',RC[-4],',',RC[-3],',',RC[-2],',',RC[-1],');)  这样就会生成insert语句,正如你在例子Excel文件中看到的(当你单击SQL下面的单元格时,可以看到公式)。  这个实际上是使用了Excel的CONCATENATE字符串连接函数,将数据生成你需要的SQL语句。RC[-2]是从最后一列(不包括该列)往前数的第二列。  2.将SQL下面单元格的公式复制到该列的其它单元格,这样可以看到生成了所需要的所有SQL语句。  3.将最后一列选中,复制数据到一个文本文件,将该文本文件另存为一个.sql文件(别忘了删除第一行的“SQL”)。  4.能够运行sql文件的工具有很多,运行这个文件就可以了。如果没有工具,参考
在windows下批量执行mysql脚本(
http://www.albertsong.com/read-21.html
)。  使用上面的方法,你需要知道什么样的insert语句对于mysql来说是正确的。  最常见的是日期的格式,如果不转换成字符串,用上面的方法会生成一个整数,这样插入mysql后就不对了。  因此上面的公式改成  =CONCATENATE(insert
into
employee(name,birthday,email,hobby)values(',RC[-4],',',TEXT(RC[-3],yyyy-mm-dd
hh:mm:ss),',',RC[-2],',',RC[-1],');)  这里用到了TEXT函数来将日期格式化成mysql能接受的日期字符串。  具体请参考例子。Excel2Mysql.rar
  文件说明如下:  doc.txt--本文  SqlGen.xls--Excel例子文件  create.sql--建表语句  insert.sql--生成的insert语句  function.txt--需要在Excel中使用的函数  写了这么多,实际上就一句话:使用Excel的CONCATENATE函数生成sql语句并执行。  如果懂一点儿VBA可以直接生成insert.sql文件
取消 评论
见附件
取消 评论
Sub aa()
For i = 1 To Sheets(sheet1).[a65536].End(3).Row
If Application.WorksheetFunction.CountIf(Sheets(sheet1).[a:a], Sheets(sheet1).Cells(i, 1)) 1 Then
If Application.WorksheetFunction.CountIf([a:a], Sheets(sheet1).Cells(i, 1)) = 0 Then
Cells([a65536].End(3).Row + 1, 1) = Sheets(sheet1).Cells(i, 1)
End If
End If
Next
End Sub
取消 评论
这个可以用个VBA解决
取消 评论
ZOL问答 > excel里用vba怎么单元格数据变成批注

举报

感谢您为社区的和谐贡献力量请选择举报类型

举报成功

经过核实后将会做出处理
感谢您为社区和谐做出贡献

扫码参与新品0元试用
晒单、顶楼豪礼等你拿

扫一扫,关注我们
提示

确定要取消此次报名,退出该活动?