精华内容
下载资源
问答
  • VB代码十进制小数转二进制?...一个十进制转二进制的函数 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
    VB代码十进制小数转二进制?

    一个十进制转二进制的函数
    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


    展开全文
  • Excel列标与列名转换问题,本质上是...但是,老实说,在用公式法解决这个十进制转二十六进制的问题时还真是难到我了,花了好几个小时也没有解决。于是,求助网络,在这篇文章的启发下,先实现了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

    展开全文
  • 喜欢请您点赞,关注@悟禅禅 ,为您解决#Excel# 与#vba# 的难题在软件开发的过程中,进制转换一直是一个...例一、将十进制数值“100”,分别转换成十六进制数值,八进制数值和二进制数值。头@条@号“悟禅禅”原创在...

    喜欢请您点赞,关注@悟禅禅 ,为您解决#Excel# 与#vba# 的难题

    在软件开发的过程中,进制转换一直是一个必要而又麻烦的工作。虽然进制转换的原理并不难,但在不借助工具的前提下计算出结果依然是个折磨人的事情。

    Excel中BASE()函数可以将十进制的数值快速的转换成16进制,8进制和2进制。

    例一、将十进制数值“100”,分别转换成十六进制数值,八进制数值和二进制数值。

    aa3973cb5dd75de3a6bb77749a14b109.png

    头@条@号“悟禅禅”原创

    在单元格B3写入数值100后,在单元格C3中写入公式“=BASE(B3,16)”,就得到了100对应的16进制数值为“64

    71479572dcec65fb70280c13844032e1.png

    头@条@号“悟禅禅”原创

    8b1a1a742cc36f8d9f4598d95aad6779.png

    头@条@号“悟禅禅”原创

    在单元格D3中写入公式"=BASE(B3,8)",得到100对应的8进制数值“144”。

    f422c4c697886a085e6bb213e3317492.png

    头@条@号“悟禅禅”原创

    1b6952ac5e73b05f425f08e01e2445de.png

    头@条@号“悟禅禅”原创

    在单元格E3写入公式“=BASE(B3,2)”,得到100对应的2进制数值“1100100”。

    524287a56f9812f22146816ed1863d89.png

    头@条@号“悟禅禅”原创

    09b9d0e459338305c3fc72150071f02f.png

    头@条@号“悟禅禅”原创

    在二进制数值的转换中,好多时候都希望结果有一个固定的位数,那么我们可以把上面的结果的位数固定到12位。将公式改为“=BASE(B3,2,12)

    b070bbecdbde7f017a52ef6444133e3a.png

    头@条@号“悟禅禅”原创

    得到一个高位补0的12位二进制结果“000001100100

    c54b588b713b92e146fff25ba871e040.png

    头@条@号“悟禅禅”原创

    例二、当尝试将非数值进行转换的时候会会返回错误码“#VALUE!”,比如写入公式“=BASE("a",2,12)

    727b75e86cd145fdac665423815b4c72.png

    头@条@号“悟禅禅”原创

    17609ba0f702ac050380e270aa54bd82.png

    头@条@号“悟禅禅”原创

    例三、当对含有小数的数值进行转换的时候,公式只对整数部分进行转换

    73c6956caa09ab6a3ba863dd9ced8b96.png

    头@条@号“悟禅禅”原创

    f89597f33ac4a457714ef77fbcab5f71.png

    头@条@号“悟禅禅”原创

    与“BASE()函数”相对应的函数“DECIMAL()”函数的功能则是将不同进制的数值转换成十进制,感兴趣的小伙伴不妨看看我写的关于“DECIMAL()”函数的微头条。

    喜欢请您点赞,关注@悟禅禅,为您解决Excel与Vba的难题。

    #Excel技巧##财务Excel表格#

    展开全文
  • 喜欢请您点赞,关注@悟禅禅 ,为您解决#Excel# 与#vba# 的难题在软件开发的过程中,进制转换一直是一个...例一、将十进制数值“100”,分别转换成十六进制数值,八进制数值和二进制数值。头@条@号“悟禅禅”原创在...

    喜欢请您点赞,关注@悟禅禅 ,为您解决#Excel# 与#vba# 的难题

    在软件开发的过程中,进制转换一直是一个必要而又麻烦的工作。虽然进制转换的原理并不难,但在不借助工具的前提下计算出结果依然是个折磨人的事情。

    Excel中BASE()函数可以将十进制的数值快速的转换成16进制,8进制和2进制。

    例一、将十进制数值“100”,分别转换成十六进制数值,八进制数值和二进制数值。

    a447dde4f181336ff159f8d609437233.png

    头@条@号“悟禅禅”原创

    在单元格B3写入数值100后,在单元格C3中写入公式“=BASE(B3,16)”,就得到了100对应的16进制数值为“64

    3ec6d9e119ebe9029e4832aa5093c13a.png

    头@条@号“悟禅禅”原创

    9eaebab8cb09b50c99a38e97b4cc63d1.png

    头@条@号“悟禅禅”原创

    在单元格D3中写入公式"=BASE(B3,8)",得到100对应的8进制数值“144”。

    cb248f0b02857debb2170f05aae7308e.png

    头@条@号“悟禅禅”原创

    9d20dd90ea6d8576c0fb410e22850721.png

    头@条@号“悟禅禅”原创

    在单元格E3写入公式“=BASE(B3,2)”,得到100对应的2进制数值“1100100”。

    10d67a1d3f2ed588cb24ba13efd28532.png

    头@条@号“悟禅禅”原创

    2d78e30daf1c736dd66c9662bfa6b3ad.png

    头@条@号“悟禅禅”原创

    在二进制数值的转换中,好多时候都希望结果有一个固定的位数,那么我们可以把上面的结果的位数固定到12位。将公式改为“=BASE(B3,2,12)

    7356ac79b7feee7aa3a6964821b23553.png

    头@条@号“悟禅禅”原创

    得到一个高位补0的12位二进制结果“000001100100

    9538698a9494a63f4d2a4b6fd99351f7.png

    头@条@号“悟禅禅”原创

    例二、当尝试将非数值进行转换的时候会会返回错误码“#VALUE!”,比如写入公式“=BASE("a",2,12)

    f8c508ff38826edccab98b4d4f3b2d75.png

    头@条@号“悟禅禅”原创

    046e14a517ca8927fe7e6bc3cd291012.png

    头@条@号“悟禅禅”原创

    例三、当对含有小数的数值进行转换的时候,公式只对整数部分进行转换

    858f9971958becdb1b6090eb79add97f.png

    头@条@号“悟禅禅”原创

    982fa609a3b5ee21c13ad78daf7c60d7.png

    头@条@号“悟禅禅”原创

    与“BASE()函数”相对应的函数“DECIMAL()”函数的功能则是将不同进制的数值转换成十进制,感兴趣的小伙伴不妨看看我写的关于“DECIMAL()”函数的微头条。

    喜欢请您点赞,关注@悟禅禅,为您解决Excel与Vba的难题。

    #Excel技巧##财务Excel表格#

    展开全文
  • 利用空闲时间,开发了一个十进制转换为字母(相当于26进制)的函数。功能有:1. 给定Excel列标,返回对应的列名(如,第677列对应的列名为“ZA”)(但是,Excel中的列最多为16384列,对应的列名为XFD)2. 给定任意...
  • 背景知识: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:27
    EXCEL-->工具-->加载宏-->分析工具库-vba函数,勾选后...工程函数十六进制转十进制,=HEX2DEC()进制转十六进制,=BIN2HEX()十进制转十六进制,=DEC2HEX()其它类同 管理员在2009年8月13日编辑了该文章文章。 -->
  • Excel_VBA教程

    2014-09-22 11:36:34
    22.操作二进制文件 161 23.操作文件和文件夹的时髦方法 162 24.使用WSH获取文件信息 164 25.FILESYSTEMOBJEC的方法和属性 165 26.对象FILE的属性 168 27.文件夹对象属性 169 28.驱动器对象属性 169 29.使用WSH创建...
  • 二十" DayName(21) = "廿一" DayName(22) = "廿" DayName(23) = "廿三" DayName(24) = "廿四" DayName(25) = "廿五&...
  • ExcelVBA程序设计.doc

    2011-04-05 21:32:51
    22.操作二进制文件 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 第一节 标识符..........................................................
  • 79.十进制转二进制 80.检查一个数组是否为空 81.字母栏名转数字栏名 82.数字栏名转文字栏名 83.判断一件活页夹中是否还有子目录 84.判断一个文件是否在使用中 85.列出档案详细摘要信息 86.获取菜单ID编号及名称列表 ...
  • EXCEL编程VBA高级教程

    2015-04-16 11:40:55
    十二节内部函数.............................................................................................................................5 一.测试函数................................................
  • 函数作用:十进制转二进制...........................90 '80.函数作用:检查一个数组是否为空.....................90 '81.函数作用:字母栏名转数字栏名.......................91 '82.函数作用:数字栏名转文字栏名.....
  • Excel插件--OBS.DLL

    2008-11-27 17:05:52
    2、进制转换:在二进制、八进制、十进制、十六进制之间相互转换。 3、人民币大小写互换:在Excel中,很多时候需要将小写的金额数字转换成大写,而Excel提供的函数转换出来的格式并不符合中国人的习惯,所以... ...
  • Excel终极伴侣1.287

    2008-10-24 16:41:04
    2、进制转换:在二进制、八进制、十进制、十六进制之间相互转换。 3、人民币大小写互换:在Excel中,很多时候需要将小写的金额数字转换成大写,而Excel提供的函数转换出来的格式并不符合中国人的习惯,所以... 4、...
  • Excel终极伴侣1.286

    2008-10-14 10:56:40
    2、进制转换:在二进制、八进制、十进制、十六进制之间相互转换。 3、人民币大小写互换:在Excel中,很多时候需要将小写的金额数字转换成大写,而Excel提供的函数转换出来的格式并不符合中国人的习惯,所以... ...
  • Excel终极伴侣1.291

    2009-03-19 09:01:10
    2、进制转换:在二进制、八进制、十进制、十六进制之间相互转换。 3、人民币大小写互换:在Excel中,很多时候需要将小写的金额数字转换成大写,而Excel提供的函数转换出来的格式并不符合中国人的习惯,所以... 4、...
  • Excel终极伴侣1.290

    2009-03-12 14:33:14
    2、进制转换:在二进制、八进制、十进制、十六进制之间相互转换。 3、人民币大小写互换:在Excel中,很多时候需要将小写的金额数字转换成大写,而Excel提供的函数转换出来的格式并不符合中国人的习惯,所以... 4、...
  • Excel终极伴侣1.288

    2008-11-26 16:01:36
    2、进制转换:在二进制、八进制、十进制、十六进制之间相互转换。 3、人民币大小写互换:在Excel中,很多时候需要将小写的金额数字转换成大写,而Excel提供的函数转换出来的格式并不符合中国人的习惯,所以... ...
  • o011.zip 16进制数转换成十进制, 16进制转换成二进制等(1KB) 642,o010.zip 转换二进制数为16进制数(1KB) 643,o009.zip 指定两个日期, 计算相隔的天数(2KB) 644,o008.zip 非常COOL的文字效果(9...
  • o011.zip 16进制数转换成十进制, 16进制转换成二进制等(1KB) 642,o010.zip 转换二进制数为16进制数(1KB) 643,o009.zip 指定两个日期, 计算相隔的天数(2KB) 644,o008.zip 非常COOL的文字效果(9...
  • o011.zip 16进制数转换成十进制, 16进制转换成二进制等(1KB) 642,o010.zip 转换二进制数为16进制数(1KB) 643,o009.zip 指定两个日期, 计算相隔的天数(2KB) 644,o008.zip 非常COOL的文字效果(9...
  • o011.zip 16进制数转换成十进制, 16进制转换成二进制等(1KB) 642,o010.zip 转换二进制数为16进制数(1KB) 643,o009.zip 指定两个日期, 计算相隔的天数(2KB) 644,o008.zip 非常COOL的文字效果(9...
  • 【屏幕取色】 经典的屏幕取色工具,可取任意一处屏幕颜色到指定的存储格中,可显示为RGB颜色值或十六进制的颜色值,为VBA开发人员的辅助工具之一。 【万年日历】 可以查询所有节、假日信息和公农双历,以及计算两...
  • EXCEL集成工具箱V6.0

    2010-09-11 01:44:37
    【屏幕取色】 经典的屏幕取色工具,可取任意一处屏幕颜色到指定的存储格中,可显示为RGB颜色值或十六进制的颜色值,为VBA开发人员的辅助工具之一。 【万年日历】 可以查询所有节、假日信息和公农双历,以及计算两...
  • 【屏幕取色】 经典的屏幕取色工具,可取任意一处屏幕颜色到指定的存储格中,可显示为RGB颜色值或十六进制的颜色值,为VBA开发人员的辅助工具之一。 【万年日历】 可以查询所有节、假日信息和公农双历,以及计算两...
  • 【屏幕取色】 经典的屏幕取色工具,可取任意一处屏幕颜色到指定的存储格中,可显示为RGB颜色值或十六进制的颜色值,为VBA开发人员的辅助工具之一。 【万年日历】 可以查询所有节、假日信息和公农双历,以及计算两...
  • 【屏幕取色】 经典的屏幕取色工具,可取任意一处屏幕颜色到指定的存储格中,可显示为RGB颜色值或十六进制的颜色值,为VBA开发人员的辅助工具之一。 【万年日历】 可以查询所有节、假日信息和公农双历,以及计算两...

空空如也

空空如也

1 2
收藏数 31
精华内容 12
关键字:

vba十进制转二进制