Gar*_*ent 6 vba microsoft-excel
我有一个简短的 VBA 函数,可以生成文本字符串的二进制表示:
Public Function TextToBin(S As String) As String
Dim i As Long, L As Long
L = Len(S)
With Application.WorksheetFunction
For i = 1 To L
TextToBin = TextToBin & .Dec2Bin(Asc(Mid(S, i, 1)))
Next i
End With
End Function
Run Code Online (Sandbox Code Playgroud)
例如:
我被要求用一个简单的公式替换这个 UDF,以便应用程序可以在无宏的环境中运行。
我目前的解决方法是放置:
=IFERROR(DEC2BIN(CODE(MID($A$1,COLUMNS($A:A),1))),"")
Run Code Online (Sandbox Code Playgroud)
在单元格B1 中并复制。然后,在另一个单元格中,使用:
=TEXTJOIN("",TRUE,B1:IV1)
Run Code Online (Sandbox Code Playgroud)
但是,我不想承认,我们能做的最好的事情就是使用一万六千多个辅助细胞!
有没有一种简单、紧凑的方法来获得相同的结果?
Sco*_*ner 14
将此用作数组:
=TEXTJOIN("",TRUE,DEC2BIN(CODE(MID(A1,ROW(INDIRECT("1:" & LEN(A1))),1))))
Run Code Online (Sandbox Code Playgroud)
作为数组公式,退出编辑模式时必须使用 Ctrl-Shift-Enter 而不是 Enter 确认。如果正确完成,Excel 将{}围绕公式。
| 归档时间: |
|
| 查看次数: |
10032 次 |
| 最近记录: |