excel 宏循环行数据 ,Excel统计所有sheet数据行数 VBA
Sub fun1()
'统计每一个sheet有多少行数据
Set s1 = Sheets("Sheet1")
'totalok = 0
For i = To Sheets.Count
s1.Cells(i, ) = Sheets(i).Name
r = Sheets(i).Range("A65535").End(xlUp).Row s1.Cells(i, ) = r
If i > Then
totalok = totalok + r
End If
Next
s1.Cells(, ) = totalok
End Sub
Sub Fun2()
'一个sheet表中循环查另一个sheet中是否存在,
‘查地名是否存在 OK 'Set Sheet = Worksheets("Sheet251")
Set dbSH = Sheets("pd_port")
'Set newSH = Sheets("(CN) CHINA") Cells(, ) = Now() ' 开始时间
Dim i
i =
Do While Cells(i, ) <> "" newCode = Trim(UCase(Cells(i, )))
newName = Trim(UCase(Cells(i, ))) isAirPort = ""
isSeaPort = ""
isRailway = ""
PortType = ' 0港口,1机场,2火车站 3其他 If InStr(newName, " APT") > Then
isAirPort = "Yes AirPort"
PortType =
End If
If InStr(newName, " PT") > Then
isSeaPort = "Yes SeaPort"
PortType =
End If
If InStr(newName, " RAILWAY") > Then
isRailway = "Yes Railway"
PortType =
End If r1 = "code No"
r2 = "name No"
For j = To
dbCode = Trim(UCase(dbSH.Cells(j, )))
dbName = Trim(UCase(dbSH.Cells(j, ))) If PortType = Then
dbName = Replace(dbName, " Apt", " AIRPORT") newCode = Right(newCode, )
newName = Replace(newName, " Apt", "")
End If If dbCode = newCode Then
r1 = "code Exist"
End If If dbName = newName Then
r2 = "name Exist"
End If
Next Cells(i, ) = r1
Cells(i, ) = r2 Cells(i, ) = isAirPort
Cells(i, ) = isSeaPort
Cells(i, ) = isRailway
Cells(i, ) = PortType
i = i +
Loop Cells(, ) = Now() ' 结束时间
End Sub
Sub Fun3()
'一个sheet表中循环查另一个sheet中是否存在,
’查地名是否存在 test 'Set Sheet = Worksheets("Sheet251")
Set dbSH = Sheets("pd_port")
'Set newSH = Sheets("(CN) CHINA") Cells(, ) = Now() ' 开始时间
Dim i
i =
'Do While Cells(i, 2) <> ""
For i = To
newCode = Trim(UCase(Cells(i, )))
newName = Trim(UCase(Cells(i, ))) isAirPort = ""
isSeaPort = ""
isRailway = ""
PortType = ' 0港口,1机场,2火车站 3其他 If InStr(newName, " APT") > Then
isAirPort = "Yes AirPort"
PortType =
End If
If InStr(newName, " PT") > Then
isSeaPort = "Yes SeaPort"
PortType =
End If
If InStr(newName, " RAILWAY") > Then
isRailway = "Yes Railway"
PortType =
End If r1 = "code No"
r2 = "name No"
For j = To
dbCode = Trim(UCase(dbSH.Cells(j, )))
dbName = Trim(UCase(dbSH.Cells(j, ))) If PortType = Then
dbName = Replace(dbName, " Apt", " AIRPORT") newCode = Right(newCode, )
newName = Replace(newName, " Apt", "")
End If If dbCode = newCode Then
r1 = "code Exist"
End If If dbName = newName Then
r2 = "name Exist"
End If
Next Cells(i, ) = r1
Cells(i, ) = r2 Cells(i, ) = isAirPort
Cells(i, ) = isSeaPort
Cells(i, ) = isRailway
Cells(i, ) = PortType
'i = i + 1
'Loop
Next
Cells(, ) = Now() ' 结束时间
End Sub
Sub Fun4()
' 查国家是否存在 ' Set Sheet = Worksheets("Sheet251")
Set dbSH = Sheets("pd_country")
Set newSH = Sheets("Country Name")
newSH.Cells(, ) = Now() ' 开始时间 For i = To
' Sheet.Rows(i).Cells (0)
' Print Sheet.Cells(i, 1)
' Print Worksheets("Sheet251").Cells(i, 1).Value
newCode = UCase(newSH.Cells(i, ))
newName = UCase(newSH.Cells(i, )) ResultCode = "code No"
ResultName = "name No"
For j = To
dbCode = UCase(dbSH.Cells(j, ))
dbName = UCase(dbSH.Cells(j, )) ' MsgBox dbValue + "---" + newValue
If dbCode = newCode Then
ResultCode = "code Exist"
End If If dbName = newName Then
ResultName = "name Exist"
End If Next newSH.Cells(i, ) = ResultCode
newSH.Cells(i, ) = ResultName newSH.Cells(, ) = Now() ' 结束时间
Next
End Sub
Sub stoCheckTable()
msg = "一.请确保【申通账单】表格与【HELKA导出寄件数据】表格已准备;"
msg = msg + vbCrLf + "二.请确保第1个表格为【申通账单]表格】;"
msg = msg + vbCrLf + "三.请确保第2个表格为【HELKA导出寄件数据】表格;"
msg = msg + vbCrLf + "四.点[是]开始核对数据!"
msgResult = MsgBox(msg, vbYesNo, "申通快递数据核对")
If msgResult = Then
Set stoTable = Sheets() '申通账单表格
Set helkaTable = Sheets() 'HELKA导出的表格
stoIndex = ' 申通的表格 第几行开始循环
NotFoundCount = '几条没有找到数量统计
Do While stoTable.Cells(stoIndex, ) <> ""
stoNo = Str(Trim(stoTable.Cells(stoIndex, )))
helkaIndex = 'HELKA导出的表格 第几行开始循环
okIndex =
Do While helkaTable.Cells(helkaIndex, ) <> ""
TempNo = Trim(helkaTable.Cells(helkaIndex, ))
If TempNo <> "" Then
helkaNo = Str(Trim(helkaTable.Cells(helkaIndex, )))
If (stoNo = helkaNo) Then
'MsgBox "找到了" + stoNo + "=" + helkaNo + "__ helkaIndex:" + Str(helkaIndex)
okIndex = helkaIndex
Exit Do
End If
End If
helkaIndex = helkaIndex +
Loop
If okIndex > Then
stoTable.Cells(stoIndex, ) = "核对成功"
stoTable.Cells(stoIndex, ) = helkaTable.Cells(okIndex, )
stoTable.Cells(stoIndex, ) = helkaTable.Cells(okIndex, )
stoTable.Cells(stoIndex, ) = helkaTable.Cells(okIndex, )
Else
NotFoundCount = NotFoundCount +
stoTable.Cells(stoIndex, ) = "不存在"
stoTable.Cells(stoIndex, ).Interior.ColorIndex =
End If
stoIndex = stoIndex +
Loop
If NotFoundCount > Then
stoTable.Cells(stoIndex, ) = "核对结果"
stoTable.Cells(stoIndex, ) = "状态"
stoTable.Cells(stoIndex, ) = "物品名称"
stoTable.Cells(stoIndex, ) = "备注"
MsgBox "共发现" + Str(NotFoundCount) + " 条不存在的数据!"
Else
MsgBox "核对完成,所有单号都找到!"
End If
End If
End Sub
excel 宏循环行数据 ,Excel统计所有sheet数据行数 VBA的更多相关文章
- Excel宏录制、数据透视表、合并多个页签
前段时间做数据分析的时候,遇到很多报表文件需要处理,在此期间学习了很多Excel操作,特此做笔记回顾. Excel宏录制 打开开发者工具 打开Excel文件,选择”文件”-->“选项”--> ...
- 原创:如何实现在Excel通过循环语句设置指定行的格式
原创:如何实现在Excel通过循环语句设置指定行的格式 一.需求: 想让excel的某些行(比如3的倍数的行)字体变成5号字 如何整: 二.实现: Sub code() To Range(" ...
- Pandas写excel总结:写入多个sheet、1个sheet写入多行、向已有sheet追加数据
1.最简单最基础的写:1excel1sheet df.to_excel("test.xlxs") 2.在一个excel文件里面写入多个sheet writer=pd.ExcelWr ...
- excel宏整理
工作以后发现excel很强大,用好excel已经成功工作中很重要的一部分内容,最近写了一些宏, 整理如下: 根据excel生成sql脚本的sc_template Sub GenSCTemplateFi ...
- 向excel中循环插入值
import xlrd #导入excel读模块 from xlutils import copy #导入copy模块 book = xlrd.open_workbook('tb_base_buildi ...
- POI导出复杂的excel;excel公共样式类;excel拼接定制类;数据科学计数法转为普通值
一.excel公共样式类(包含数据科学计数法转为普通值) package com.thinkgem.jeesite.common.utils.excel; import org.apache.poi. ...
- C#中NPOI操作excel之读取和写入excel数据
一.下载引用 下载需要引用的dll,即:NPOI.dll,NPOI.OOXML.dll,NPOI.OpenXml4Net.dll,ICSharpCode.SharpZipLib.dll(office2 ...
- C# Excel数据验重及Table数据验重
http://blog.csdn.net/jiankunking/article/details/38398087 最近在做导入Excel数据的时候,要检验数据是否重复: 1.要检验Excel数据本身 ...
- SpringBoot图文教程10—模板导出|百万数据Excel导出|图片导出「easypoi」
有天上飞的概念,就要有落地的实现 概念十遍不如代码一遍,朋友,希望你把文中所有的代码案例都敲一遍 先赞后看,养成习惯 SpringBoot 图文教程系列文章目录 SpringBoot图文教程1「概念+ ...
随机推荐
- 转: 【前端福利】用grunt搭建自动化的web前端开发环境-完整教程
http://blog.csdn.net/wangfupeng1988/article/details/46418203
- Graylog-Sidecar
收集linux日志-filebeat 安装sidecar 下载graylog-sidecar-1.0.2-1.x86_64.rpm rpm -ivh graylog-sidecar-1.0.2-1.x ...
- C++stringstream使用
链接 建议在使用是直接使用stringstream,不需要再去分输入用istringstream,输出用ostringstream.
- 装ubuntu的坑
装ubuntu安装盘的U盘,在BOOT中会出现两种载入方式,切记不要用UEFI方式打开,否则安装ubuntu会在最后卡在GRUB的安装上面,然后失败.
- eclipse scala语法用java检验 报错问题
传送门 https://stackoverflow.com/questions/8522149/eclipse-not-recognizing-scala-code 还是 直接用eclipse的 sc ...
- contest1 CF70 BetaRound ooxxx ooxxx ooooo
CDE set之类不要直接用lower_bound, 要用set.lower_bound()
- [RN] React Native 中使用 stickyHeaderIndices 实现 ScrollView 的吸顶效果
React Native中,ScrollView组件可以使用 stickyHeaderIndices 轻松实现 sticky 效果. 例如下面代码中: <ScrollView showsVert ...
- 说几条JavaScript的基本规范
1.不要在同一行声明多个变量 2.使用===或!==来比较 3.使用字面量的方式来创建对象.数组,替代new Array这种形式 4.不要使用全局函数 5.switch语句必须要带default分支 ...
- C语言-malloc
malloc函数 编辑 锁定 同义词 malloc一般指malloc函数 malloc函数是一种分配长度为num_bytes字节的内存块的函数,可以向系统申请分配指定size个字节的内存空间.ma ...
- C#开源录音组件、录像组件、录屏组件及demo源码
在多媒体系统中,一般都会涉及到录音.录像.录屏问题,采集得到的数据可以用来传输.播放.或存储.所以,对于像课件录制系统.语音视频录制系统.录屏系统等,多媒体数据的采集就是最基础的功能之一. MCapt ...