-
用VB代码将十进制小数转二进制,也说下vba自动打印
2015-12-27 18:20:49VB代码十进制小数转二进制?...一个十进制转二进制的函数 Public Function D2B(D As Integer) As String D2B = "" Do While D > 0 D2B = D Mod 2 & D2B D = D \ 2 Loop End Function Private Sub Form_LoadVB代码十进制小数转二进制?
一个十进制转二进制的函数Public Function D2B(D As Integer) As String D2B = "" Do While D > 0 D2B = D Mod 2 & D2B D = D \ 2 Loop End Function Private Sub Form_Load() Me.Caption = D2B(8) End Sub 另外的办法:
Function dToTwo(n As Integer) As String Dim S As String S = "" Do While n <> 0 a = n Mod 2 n = n \ 2 S = Chr(48 + a) & S Loop dToTwo= S End Function
表格中的vba自动打印?
一个表格中我可以做到通过变换序号改变打印区域的内容,然后想通过控件自动打印,就是我在上面输入我要打印的内容的起始序号和终止序号,然后点击按钮就会自动打印。主要是后面的打印的命令实在不会,求回答?
回答:
录制个打印的宏,稍微改造一下即可,把序号作为循环
比如如下代码sub aa() dim i for i=10 to 20 '序号 '改变序号的代码写到这个位置 ActiveWindow.SelectedSheets.PrintOut Copies:=1 next end sub
-
学以致用——VBA实现十进制数字转换为字母(二十六进制)(Convert a number to letters (Excel Column ...
2018-06-04 22:09:23Excel列标与列名转换问题,本质上是...但是,老实说,在用公式法解决这个十进制转二十六进制的问题时还真是难到我了,花了好几个小时也没有解决。于是,求助网络,在这篇文章的启发下,先实现了VBA编程方式来解决问题。...Excel列标与列名转换问题,本质上是一个十进制数和二十六进制数的转换问题。记得以前学C、C#、JAVA等编程语言时,已经做过一些相关练习了。但是,老实说,在用公式法解决这个十进制转二十六进制的问题时还真是难到我了,花了好几个小时也没有解决。
于是,求助网络,在一篇文章的启发下,先实现了VBA编程方式来解决问题。
在此总结一下经验:
1. 编程方式的思路更为清晰一些(很容易识别程序逻辑,如核心算法)
2. 调试起来方便很多。Excel自带函数法严格来讲不算调试,只是不断的试错而已。而VBE中可通过DEBUG.PRINT语句输出中间变量及计算过程,对理清思路非常有用
3. 多看看别人的代码可以少走很多弯路
代码分享:
Sub GetExcelColumnName(ByVal ExcelColumnName As String, ByVal columnNumber As Long) Dim dividend As Long Dim columnName As String Dim modulo As Integer Dim n As Integer '循环次数 dividend = columnNumber Debug.Print "Input: ColumnNumber = " & columnNumber Debug.Print "Calculation process:" & vbNewLine While (dividend > 0) n = n + 1 modulo = (dividend - 1) Mod 26 Debug.Print "Iteration No." & n Debug.Print "dividend = " & dividend & ", modulo = (dividend - 1) Mod 26 = " & modulo columnName = Chr(65 + modulo) + columnName dividend = Round((dividend - modulo) / 26, 0) Debug.Print "columnName = " & columnName & ", dividend = Round((dividend - modulo) / 26, 0) = " & dividend & vbNewLine Wend ExcelColumnName = columnName Debug.Print "Result: ColumnNumber = " & columnNumber & " <--> ColumnName = " & columnName & vbNewLine & vbNewLine End Sub
测试代码:
Sub GetExcelColumnNameTest() Dim result As String 'For i = 676 To 678 GetExcelColumnName result, 2147483647 'Next End Sub
测试结果:
Input: ColumnNumber = 2147483647 Calculation process: Iteration No.1 dividend = 2147483647, modulo = (dividend - 1) Mod 26 = 22 columnName = W, dividend = Round((dividend - modulo) / 26, 0) = 82595524 Iteration No.2 dividend = 82595524, modulo = (dividend - 1) Mod 26 = 23 columnName = XW, dividend = Round((dividend - modulo) / 26, 0) = 3176750 Iteration No.3 dividend = 3176750, modulo = (dividend - 1) Mod 26 = 17 columnName = RXW, dividend = Round((dividend - modulo) / 26, 0) = 122182 Iteration No.4 dividend = 122182, modulo = (dividend - 1) Mod 26 = 7 columnName = HRXW, dividend = Round((dividend - modulo) / 26, 0) = 4699 Iteration No.5 dividend = 4699, modulo = (dividend - 1) Mod 26 = 18 columnName = SHRXW, dividend = Round((dividend - modulo) / 26, 0) = 180 Iteration No.6 dividend = 180, modulo = (dividend - 1) Mod 26 = 23 columnName = XSHRXW, dividend = Round((dividend - modulo) / 26, 0) = 6 Iteration No.7 dividend = 6, modulo = (dividend - 1) Mod 26 = 5 columnName = FXSHRXW, dividend = Round((dividend - modulo) / 26, 0) = 0 Result: ColumnNumber = 2147483647 <--> ColumnName = FXSHRXW
参考文章:
https://stackoverflow.com/questions/181596/how-to-convert-a-column-number-eg-127-into-an-excel-column-eg-aa
-
c语言进制转换函数_Excel中利用BASE()函数对十进制数字进行进制转换
2020-11-24 05:30:16喜欢请您点赞,关注@悟禅禅 ,为您解决#Excel# 与#vba# 的难题在软件开发的过程中,进制转换一直是一个...例一、将十进制数值“100”,分别转换成十六进制数值,八进制数值和二进制数值。头@条@号“悟禅禅”原创在...喜欢请您点赞,关注@悟禅禅 ,为您解决#Excel# 与#vba# 的难题
在软件开发的过程中,进制转换一直是一个必要而又麻烦的工作。虽然进制转换的原理并不难,但在不借助工具的前提下计算出结果依然是个折磨人的事情。
Excel中BASE()函数可以将十进制的数值快速的转换成16进制,8进制和2进制。
例一、将十进制数值“100”,分别转换成十六进制数值,八进制数值和二进制数值。
头@条@号“悟禅禅”原创
在单元格B3写入数值100后,在单元格C3中写入公式“=BASE(B3,16)”,就得到了100对应的16进制数值为“64”
头@条@号“悟禅禅”原创
头@条@号“悟禅禅”原创
在单元格D3中写入公式"=BASE(B3,8)",得到100对应的8进制数值“144”。
头@条@号“悟禅禅”原创
头@条@号“悟禅禅”原创
在单元格E3写入公式“=BASE(B3,2)”,得到100对应的2进制数值“1100100”。
头@条@号“悟禅禅”原创
头@条@号“悟禅禅”原创
在二进制数值的转换中,好多时候都希望结果有一个固定的位数,那么我们可以把上面的结果的位数固定到12位。将公式改为“=BASE(B3,2,12)”
头@条@号“悟禅禅”原创
得到一个高位补0的12位二进制结果“000001100100”
头@条@号“悟禅禅”原创
例二、当尝试将非数值进行转换的时候会会返回错误码“#VALUE!”,比如写入公式“=BASE("a",2,12)”
头@条@号“悟禅禅”原创
头@条@号“悟禅禅”原创
例三、当对含有小数的数值进行转换的时候,公式只对整数部分进行转换
头@条@号“悟禅禅”原创
头@条@号“悟禅禅”原创
与“BASE()函数”相对应的函数“DECIMAL()”函数的功能则是将不同进制的数值转换成十进制,感兴趣的小伙伴不妨看看我写的关于“DECIMAL()”函数的微头条。
喜欢请您点赞,关注@悟禅禅,为您解决Excel与Vba的难题。
#Excel技巧##财务Excel表格#
-
PHP中利用sessino猜数字_Excel中利用BASE()函数对十进制数字进行进制转换
2020-12-29 10:40:17喜欢请您点赞,关注@悟禅禅 ,为您解决#Excel# 与#vba# 的难题在软件开发的过程中,进制转换一直是一个...例一、将十进制数值“100”,分别转换成十六进制数值,八进制数值和二进制数值。头@条@号“悟禅禅”原创在...喜欢请您点赞,关注@悟禅禅 ,为您解决#Excel# 与#vba# 的难题
在软件开发的过程中,进制转换一直是一个必要而又麻烦的工作。虽然进制转换的原理并不难,但在不借助工具的前提下计算出结果依然是个折磨人的事情。
Excel中BASE()函数可以将十进制的数值快速的转换成16进制,8进制和2进制。
例一、将十进制数值“100”,分别转换成十六进制数值,八进制数值和二进制数值。
头@条@号“悟禅禅”原创
在单元格B3写入数值100后,在单元格C3中写入公式“=BASE(B3,16)”,就得到了100对应的16进制数值为“64”
头@条@号“悟禅禅”原创
头@条@号“悟禅禅”原创
在单元格D3中写入公式"=BASE(B3,8)",得到100对应的8进制数值“144”。
头@条@号“悟禅禅”原创
头@条@号“悟禅禅”原创
在单元格E3写入公式“=BASE(B3,2)”,得到100对应的2进制数值“1100100”。
头@条@号“悟禅禅”原创
头@条@号“悟禅禅”原创
在二进制数值的转换中,好多时候都希望结果有一个固定的位数,那么我们可以把上面的结果的位数固定到12位。将公式改为“=BASE(B3,2,12)”
头@条@号“悟禅禅”原创
得到一个高位补0的12位二进制结果“000001100100”
头@条@号“悟禅禅”原创
例二、当尝试将非数值进行转换的时候会会返回错误码“#VALUE!”,比如写入公式“=BASE("a",2,12)”
头@条@号“悟禅禅”原创
头@条@号“悟禅禅”原创
例三、当对含有小数的数值进行转换的时候,公式只对整数部分进行转换
头@条@号“悟禅禅”原创
头@条@号“悟禅禅”原创
与“BASE()函数”相对应的函数“DECIMAL()”函数的功能则是将不同进制的数值转换成十进制,感兴趣的小伙伴不妨看看我写的关于“DECIMAL()”函数的微头条。
喜欢请您点赞,关注@悟禅禅,为您解决Excel与Vba的难题。
#Excel技巧##财务Excel表格#
-
学以致用——使用VBA函数将十进制数字转换为字母(二十六进制)(Convert a number to letters (Excel ...
2018-06-04 18:50:08利用空闲时间,开发了一个十进制转换为字母(相当于26进制)的函数。功能有:1. 给定Excel列标,返回对应的列名(如,第677列对应的列名为“ZA”)(但是,Excel中的列最多为16384列,对应的列名为XFD)2. 给定任意... -
vba把图片转成二进制_剑指offer-二进制中1的个数
2020-12-05 17:24:53背景知识:1、原码、反码、补码原码:正数的原码就是十进制转成二进制得到的二进制值,而负数是对应的正数转成二进制得到的二进制值,然后将最高位(符号位)置为1表示这是一个负数,如-10:10001010反码:如果是正数... -
VBA编码程序(进制的转换)
2018-05-10 13:21:21'二进制代码转换为十六进制代码function c2to16(x) i=1 for i=1 to len(x) step 4 c2to16=... hex(c2to10(mid(x,i,4))) next end function '二进制代码转换为十进制代码function c2to10(x) c2to10=0 if x=... -
EXCEL中进制转换函数
2014-03-31 17:41:27EXCEL-->工具-->加载宏-->分析工具库-vba函数,勾选后...工程函数十六进制转十进制,=HEX2DEC()二进制转十六进制,=BIN2HEX()十进制转十六进制,=DEC2HEX()其它类同 管理员在2009年8月13日编辑了该文章文章。 --> -
Excel_VBA教程
2014-09-22 11:36:3422.操作二进制文件 161 23.操作文件和文件夹的时髦方法 162 24.使用WSH获取文件信息 164 25.FILESYSTEMOBJEC的方法和属性 165 26.对象FILE的属性 168 27.文件夹对象属性 169 28.驱动器对象属性 169 29.使用WSH创建... -
Excel阳历转农历VBA,只计算到2021.2.11,怎么才计算2021年2月11日之后呢?
2021-03-20 10:21:05二十" DayName(21) = "廿一" DayName(22) = "廿二" DayName(23) = "廿三" DayName(24) = "廿四" DayName(25) = "廿五&... -
ExcelVBA程序设计.doc
2011-04-05 21:32:5122.操作二进制文件 161 23.操作文件和文件夹的时髦方法 162 24.使用WSH获取文件信息 164 25.FILESYSTEMOBJEC的方法和属性 165 26.对象FILE的属性 168 27.文件夹对象属性 169 28.驱动器对象属性 169 29.使用WSH创建... -
Excel VBA 基础教程
2019-01-01 18:51:06一、VBA语言基础...................................................................................................................1 第一节 标识符.......................................................... -
我整理的VBA 自定义函数大全 共138页
2008-11-21 16:14:0379.十进制转二进制 80.检查一个数组是否为空 81.字母栏名转数字栏名 82.数字栏名转文字栏名 83.判断一件活页夹中是否还有子目录 84.判断一个文件是否在使用中 85.列出档案详细摘要信息 86.获取菜单ID编号及名称列表 ... -
EXCEL编程VBA高级教程
2015-04-16 11:40:55第十二节内部函数.............................................................................................................................5 一.测试函数................................................ -
excel中161个VBA_自定义函数超级实用
2018-03-28 08:36:32函数作用:十进制转二进制...........................90 '80.函数作用:检查一个数组是否为空.....................90 '81.函数作用:字母栏名转数字栏名.......................91 '82.函数作用:数字栏名转文字栏名..... -
Excel插件--OBS.DLL
2008-11-27 17:05:522、进制转换:在二进制、八进制、十进制、十六进制之间相互转换。 3、人民币大小写互换:在Excel中,很多时候需要将小写的金额数字转换成大写,而Excel提供的函数转换出来的格式并不符合中国人的习惯,所以... ... -
Excel终极伴侣1.287
2008-10-24 16:41:042、进制转换:在二进制、八进制、十进制、十六进制之间相互转换。 3、人民币大小写互换:在Excel中,很多时候需要将小写的金额数字转换成大写,而Excel提供的函数转换出来的格式并不符合中国人的习惯,所以... 4、... -
Excel终极伴侣1.286
2008-10-14 10:56:402、进制转换:在二进制、八进制、十进制、十六进制之间相互转换。 3、人民币大小写互换:在Excel中,很多时候需要将小写的金额数字转换成大写,而Excel提供的函数转换出来的格式并不符合中国人的习惯,所以... ... -
Excel终极伴侣1.291
2009-03-19 09:01:102、进制转换:在二进制、八进制、十进制、十六进制之间相互转换。 3、人民币大小写互换:在Excel中,很多时候需要将小写的金额数字转换成大写,而Excel提供的函数转换出来的格式并不符合中国人的习惯,所以... 4、... -
Excel终极伴侣1.290
2009-03-12 14:33:142、进制转换:在二进制、八进制、十进制、十六进制之间相互转换。 3、人民币大小写互换:在Excel中,很多时候需要将小写的金额数字转换成大写,而Excel提供的函数转换出来的格式并不符合中国人的习惯,所以... 4、... -
Excel终极伴侣1.288
2008-11-26 16:01:362、进制转换:在二进制、八进制、十进制、十六进制之间相互转换。 3、人民币大小写互换:在Excel中,很多时候需要将小写的金额数字转换成大写,而Excel提供的函数转换出来的格式并不符合中国人的习惯,所以... ... -
VB编程资源大全(源码 其它3)
2007-10-18 15:06:06o011.zip 16进制数转换成十进制, 16进制转换成二进制等(1KB) 642,o010.zip 转换二进制数为16进制数(1KB) 643,o009.zip 指定两个日期, 计算相隔的天数(2KB) 644,o008.zip 非常COOL的文字效果(9... -
VB编程资源大全(源码 其它1)
2007-10-18 15:20:26o011.zip 16进制数转换成十进制, 16进制转换成二进制等(1KB) 642,o010.zip 转换二进制数为16进制数(1KB) 643,o009.zip 指定两个日期, 计算相隔的天数(2KB) 644,o008.zip 非常COOL的文字效果(9... -
VB编程资源大全(源码 其它2)
2007-10-18 15:18:10o011.zip 16进制数转换成十进制, 16进制转换成二进制等(1KB) 642,o010.zip 转换二进制数为16进制数(1KB) 643,o009.zip 指定两个日期, 计算相隔的天数(2KB) 644,o008.zip 非常COOL的文字效果(9... -
VB编程资源大全(源码 其它4)
2007-10-18 15:06:41o011.zip 16进制数转换成十进制, 16进制转换成二进制等(1KB) 642,o010.zip 转换二进制数为16进制数(1KB) 643,o009.zip 指定两个日期, 计算相隔的天数(2KB) 644,o008.zip 非常COOL的文字效果(9... -
EXCEL集成工具箱完整版 (简体/繁体/英文多国语言版) V7.0
2010-08-13 10:31:10【屏幕取色】 经典的屏幕取色工具,可取任意一处屏幕颜色到指定的存储格中,可显示为RGB颜色值或十六进制的颜色值,为VBA开发人员的辅助工具之一。 【万年日历】 可以查询所有节、假日信息和公农双历,以及计算两... -
EXCEL集成工具箱V6.0
2010-09-11 01:44:37【屏幕取色】 经典的屏幕取色工具,可取任意一处屏幕颜色到指定的存储格中,可显示为RGB颜色值或十六进制的颜色值,为VBA开发人员的辅助工具之一。 【万年日历】 可以查询所有节、假日信息和公农双历,以及计算两... -
EXCEL集成工具箱V8.0完整增强版(精简)
2010-09-23 16:58:17【屏幕取色】 经典的屏幕取色工具,可取任意一处屏幕颜色到指定的存储格中,可显示为RGB颜色值或十六进制的颜色值,为VBA开发人员的辅助工具之一。 【万年日历】 可以查询所有节、假日信息和公农双历,以及计算两... -
EXCEL集成工具箱V8.0 多国语言版(2003-2010通用)
2010-09-11 12:08:58【屏幕取色】 经典的屏幕取色工具,可取任意一处屏幕颜色到指定的存储格中,可显示为RGB颜色值或十六进制的颜色值,为VBA开发人员的辅助工具之一。 【万年日历】 可以查询所有节、假日信息和公农双历,以及计算两... -
EXCEL集成工具箱V9.0 多国语言最终原版(2003-2010通用)
2011-01-07 20:40:25【屏幕取色】 经典的屏幕取色工具,可取任意一处屏幕颜色到指定的存储格中,可显示为RGB颜色值或十六进制的颜色值,为VBA开发人员的辅助工具之一。 【万年日历】 可以查询所有节、假日信息和公农双历,以及计算两...