Когда вы создаете собственное приложение / DLL-приложение с Visual Studio, оно получает зависимость от «распространяемого» пакета для этой версии Visual Studio. Это содержит DLL, такие как msvcr100.dll
и msvcp100.dll
(для различных значений 100).
В моем случае я видел эти DLL в каталоге Windows/system32
целевой машины, поэтому я думал, что все в порядке , Оказывается, эти DLL-файлы были x64! Я не знаю, почему каталог с именем system32
содержит 64-битные библиотеки DLL. Поэтому я искал свой каталог Visual Studio 2010 для всего, что назвал msvc*.dll
, и нашел x86 версии msvcr100.dll
и msvcp100.dll
. Я скопировал их на целевую машину (в месте, доступном по пути моей программы), и все было хорошо.
Надеюсь, это поможет кому-то еще столкнуться с явным безумием Microsoft.
VBA
не позволит вам напрямую ReDim
внутренний массив, однако, вы можете достичь этого довольно легко, используя промежуточный вспомогательный массив (в этом примере с именем tmp
)
Option Explicit
Sub ArrayofArrays()
Dim tmp As Variant
Dim OuterArray() As Variant
ReDim OuterArray(0 To 0)
Dim InnerArray() As Variant
ReDim InnerArray(0 To 0)
InnerArray(0) = "Foo"
OuterArray(0) = InnerArray
tmp = OuterArray(0)
ReDim Preserve tmp(LBound(tmp) To UBound(tmp) + 1)
OuterArray(0) = tmp
Erase tmp
OuterArray(0)(1) = "Bar"
Debug.Print OuterArray(0)(1)
End Sub