关于vba查询vba 筛选关键词词补充内容,谢谢大家了!!

一个关于excel vba step的问题,谢谢大家_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
一个关于excel vba step的问题,谢谢大家
Sub w()Dim i As DoubleDim a As DoubleFor i = 0 To 3 Step 0.1a = i + 1If a & 2 ThenCells(1, 1) = aExit ForEnd IfNextEnd Sub
上面这个运行结果是2.1我可以理解。把上面step换成0.01之后为什么运行结果是2?应该是2.01才对呀换成step0.0001之后结果是2...
000001之后是2.92
为什么呢.01之后为什么运行结果是2?应该是2.01才对呀换成step0.0001之后结果是2.91 换成step0, 1) = aExit ForEnd IfNextEnd Sub
上面这个运行结果是2Sub w()Dim i As DoubleDim a As DoubleFor i = 0 To 3 Step 0?请高手解答.1我可以理解。把上面step换成0.1a = i + 1If a & 2 ThenCells(1
我有更好的答案
step换成0。在你以为得到的正确数字2的时候这是截断误差的问题。可以将数据改成整型以避免这种情况的发生。所谓截断误差.01之后为什么运行结果是2——就是这种情况,就像你看到的。你以为得到的正确数字与实际得到的数字在小数点的后面几位有差别,它实际的数字可能比2大一点点这时候循环终止
有什么办法让这种double 类型的变量每次都增加0.01这样循环吗?有什么语句控制,或者不用for循环。能有几条语句展示以下就更感谢了。
Sub w()Dim i As Interger‘这里改为整型。Dim a As DoubleFor i = 0 To 30’这里改为步长为1的。If i & 20 Then'这里改成i控制,具体得自己换算。a = i/10 + 1Cells(1, 1) = aExit ForEnd IfNextEnd Sub
采纳率:42%
来自团队:
有小数的情况下 建议使用ROUND函数 规定一下小数位数不然在VB中有可能出现上述情况
step请用整型变量,浮点数总会遇到精度问题。
有什么办法让这种double 类型的变量每次都增加0.01这样循环吗?有什么语句控制,或者不用for循环。能有几条语句展示以下就更感谢了。
不管用什么循环都是一样的呀,这种问题是可以归结到最基本的门电路结构,所以浮点数的精度问题是没有办法真正解决的。建议使用整型,运算结果再根据需要输出成浮点。
为您推荐:
其他类似问题
您可能关注的内容
excel的相关知识
等待您来回答查看: 1118|回复: 12
求助大神们解答VBA跨工作簿复制数据问题,谢谢大家
阅读权限20
在线时间 小时
如何用vba语句实现从工作薄员工工资信息表中表格,2016中A5:D6区间的内容分别复制到工作薄员工工资信息表1中对应的表格,区间中,两个工作薄中表格,2016的名称是一样的!
15:33 上传
点击文件名下载附件
19 KB, 下载次数: 19
阅读权限30
在线时间 小时
& & Application.ScreenUpdating = False
& & Dim theName As String, Aiv As Workbook
& & Workbooks.Open (ThisWorkbook.Path & &\员工工资信息表.xlsx&)
& & For i = 2014 To 2016
& && &&&Windows(&员工工资信息表.xlsx&).Activate
& && &&&arr = ActiveWorkbook.Sheets(&& & i).Range(&A5:D6&)
& && &&&Windows(&员工工资信息表1.xlsm&).Activate
& && &&&ActiveWorkbook.Sheets(&& & i).Range(&A5:D6&) = arr
& & Windows(&员工工资信息表.xlsx&).Close False
& & Application.ScreenUpdating = True
阅读权限30
在线时间 小时
两个文件要在同一个文件夹内,员工工资信息表1.xlsm为启用宏的工作簿,代码放在该工作簿内的模块里
16:36 上传
点击文件名下载附件
26.72 KB, 下载次数: 62
阅读权限20
在线时间 小时
高手如云,感谢感谢
阅读权限20
在线时间 小时
& & Application.ScreenUpdating = False
你好,表格名称如果是中文呢?可以循环遍历吗?好像循环提示下标越界?
阅读权限20
在线时间 小时
两个文件要在同一个文件夹内,员工工资信息表1.xlsm为启用宏的工作簿,代码放在该工作簿内的模块里
谢谢,非常详细
如果表格名称是中文怎么处理呢?
阅读权限20
在线时间 小时
两个文件要在同一个文件夹内,员工工资信息表1.xlsm为启用宏的工作簿,代码放在该工作簿内的模块里
表格名称是中文的,而且每个表格要复制的数据的区间不同,这个应该怎么处理?谢谢你
阅读权限30
在线时间 小时
表格名称是中文的,而且每个表格要复制的数据的区间不同,这个应该怎么处理?谢谢你
如果两个表格工作表名及顺序完全相同的话,也可以用 for i =1 to n 语句,否则用 for each ... in ....语句
阅读权限30
在线时间 小时
表格名称是中文的,而且每个表格要复制的数据的区间不同,这个应该怎么处理?谢谢你
'如果工作表名是中文的,数据列相同,行数不同,代码修改如下
& & Dim arr, sh
& & Application.ScreenUpdating = False
& & Workbooks.Open (ThisWorkbook.Path & &\员工工资信息表.xlsx&)
& & Windows(&员工工资信息表.xlsx&).Activate
& & For Each sh In ActiveWorkbook.Sheets
& && &&&arr = sh.Range(&A5:D& & sh.Range(&A65536&).End(3).Row)
& && &&&Windows(&员工工资信息表1.xlsm&).Activate
& && &&&ActiveWorkbook.Sheets(sh.Name).Range(&A5:D& & sh.Range(&A65536&).End(3).Row) = arr
& & Windows(&员工工资信息表.xlsx&).Close False
& & Application.ScreenUpdating = True
阅读权限30
在线时间 小时
'精简一下代码
& & Dim arr, wb, sh, T
& & Set wb = GetObject(ThisWorkbook.Path & &\员工工资信息表.xlsx&)
& & For Each sh In wb.Worksheets
& && &&&arr = sh.Range(&A5:D& & sh.Range(&A65536&).End(3).Row)
& && &&&Sheets(sh.Name).Range(&A5:D& & sh.Range(&A65536&).End(3).Row) = arr
最新热点 /1
ExcelHome每周都有线上直播公开课,
国内一流讲师真身分享,高手贴身答疑,
赶不上直播还能看录像,
关键居然是免费的!
厚木哥们都已经这么努力了,
你还好意思说学不好Office。
玩命加载中,请稍候
玩命加载中,请稍候
Powered by
本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任! & & 本站特聘法律顾问:徐怀玉律师 李志群律师

我要回帖

更多关于 vba 清除工作表内容 的文章

 

随机推荐