小编mic*_*ael的帖子

如何使用VBA在Mac OS X上读/写内存?

在Windows上,声明的函数RtlMoveMemory提供了一种将字节块从一个地址复制到另一个地址的方法:

Private Declare PtrSafe Sub RtlMoveMemory Lib "kernel32" ( _
                              ByVal dest As LongPtr, _
                              ByVal src As LongPtr, _
                              ByVal size As LongPtr)
Run Code Online (Sandbox Code Playgroud)

Mac OS X上的等价物是什么?

macos winapi vba declare kernel32

15
推荐指数
1
解决办法
725
查看次数

打开工作簿时自动显示IDE

我正在尝试在启动Excel时自动显示IDE.

有没有办法模拟功能区中"Visual Basic编辑器"图标的单击?我调查了Application.CommandBars但是丝带没什么.

Private Sub Workbook_Open()
    ' Display Visual Basic Editor
End Sub
Run Code Online (Sandbox Code Playgroud)

excel vba excel-vba

6
推荐指数
1
解决办法
80
查看次数

使用非字母数字字符排序的范围的意外顺序

当我使用 Excel 或某些 VBA ( Range.Sort)对列表进行排序时,我得到了意想不到的结果。似乎在对文本进行排序时,连字符被简单地忽略了:

用 Excel 排序的列表

align-content
align-items
alignment-baseline    << Should be after "align-self"
align-self
animation-delay
Run Code Online (Sandbox Code Playgroud)

使用 Libre Office 排序的相同列表

align-content
align-items
align-self
alignment-baseline
animation-delay
Run Code Online (Sandbox Code Playgroud)

该文档未提供有关此行为的任何信息:

https://support.office.com/en-gb/article/Sort-data-in-a-range-or-table-62d0b95d-2a90-4610-a6ae-2e545c4a4654?ui=en-US&rs=en-GB&ad= GB#__toc246836970

https://msdn.microsoft.com/en-us/library/office/ff840646.aspx

那么这种行为背后有什么规则吗?

是否可以选择以与人类相同的方式对列表进行排序(如 Libre Office 所做的那样)?

excel vba

5
推荐指数
1
解决办法
255
查看次数

如何使用工作表函数过滤数组?

我正在寻找一种方法来过滤具有评估表达式的数组,例如:

Dim arr1(), arr2(), arr3()

arr1 = Array(1, 2, 3, 4, 5)           ' > [1, 2, 3, 4, 5]

arr2 = Map(arr1, "Values() * 2")      ' > [2, 4, 6, 8, 10]

arr3 = Filter(arr2, "Values() > 6")   ' > [8, 10]
Run Code Online (Sandbox Code Playgroud)

我已经Map使用UDF 实现了该功能 Application.Evaluate("INDEX(expression, )"),但是我正在努力使它适用于Filter:

Private arr_()

Public Function Values() As Variant()
  Values = arr_
End Function

Public Function Map(arr(), expression As String) As Variant()
  arr_ = arr
  Map = Application.Evaluate("INDEX(" & expression & …
Run Code Online (Sandbox Code Playgroud)

excel vba excel-vba

5
推荐指数
1
解决办法
881
查看次数

如何创建 Double 的空数组

我试图创建一个空/定义的数组,其Double将反映为Double(0, -1).

String我可以为,Variant和的数组创建一个Byte

  Dim arr_variant() As Variant
  arr_variant = Array()        ' Variant(0 to -1) '

  Dim arr_string() As String
  arr_string = Split(Empty)    ' String(0 to -1) '

  Dim arr_byte() As Byte
  arr_byte = ""                ' Byte(0 to -1) '

  Dim arr_double() As Double
  arr_double = ???             ' Double(0 to -1) '
Run Code Online (Sandbox Code Playgroud)

,但还没有找到办法Double

也许带有LSet或带有本机功能?

excel vba

5
推荐指数
1
解决办法
2853
查看次数

标签 统计

vba ×5

excel ×4

excel-vba ×2

declare ×1

kernel32 ×1

macos ×1

winapi ×1