Tag: 数组

VBA使用string数组作为SubString参数InStr函数(Excel)

长时间的search者,首次提问者 目标: – 循环遍历包含地址的列 – 为单元格偏移量0,6分配一个值(城市名称),根据该单元格包含的邮政编码 以下是我到目前为止(缩短的数组长度): Sub LabelCell() Dim SrchRng As Range, cel As Range Dim ZipA() As String Dim ZipB() As String Dim ZipC() As String Dim ZipD() As String ZipA = Array("12345", "12346", "12347", "12348", "12349") ZipB = Array("22345", "22346", "22347", "22348", "22349") ZipC = Array("32345", "32346", "32347", "32348", "32349") ZipD = […]

计算两个或多个空格后的字符位置

我试图返回一个值等于两个或多个空格后的第一个字母的位置。 我有一个工具,可以将可变列长的表格提取到TXT文档中。 我需要将这些表格放入Excel工作表中,而不必为每个表格中的每一列都设置固定的宽度(这是很多编码工作)。 我想根据第一个字符在两个或多个空格后的位置来find更dynamic的方法。 请记住,并非所有行都已完全填充,但第一行将成为获得列宽度的理想select。 举一个例子,文本的行看起来像这样 John Robert Eric Tom 10 11 143 43 21 265 56 99 241 76 到目前为止,我只能根据下面的代码使其工作在固定宽度 Sub exporttosheet() Dim fPath As String fPath = "C:\test.txt" Const fsoForReading = 1 Const F_LEN_A As Integer = 10 Const F_LEN_B As Integer = 23 Const F_LEN_C As Integer = 7 Const F_LEN_D As […]

如何使用Perl将multidimensional array(AoA)添加到Excel?

我想使用Perl在Excel中添加存储在2×2维数组中的数据。 我知道如何打开和添加简单的数据。 这我可以使用for循环。 但是,我怎么能优雅地做呢? 这是我想要做的 $sheet->Range("A1:B"."$size")->{Value} = @$data; or @data; or {@data}; or {\@data}; 其中@data是二维数组。 # use existing instance if Excel is already running eval {$ex = Win32::OLE->GetActiveObject('Excel.Application')}; die "Excel not installed" if $@; unless (defined $ex) { $ex = Win32::OLE->new('Excel.Application', sub {$_[0]->Quit;}) or die "Oops, cannot start Excel"; } # get a new workbook […]

如何从VBA函数填充Excel工作表中的单元格?

我只想从VBA函数填充电子表格中的单元格。 举个例子,我想在单元格中input= FillHere(),结果我将有一些单元格填满了一些数据。 我尝试了这样一个function: Function FillHere() Dim rngCaller As Range Set rngCaller = Application.Caller rngCaller.Cells(1, 1) = "HELLO" rngCaller.Cells(1, 2) = "WORLD" End Function 只要我尝试修改范围,它就会中断。 然后我试了一下(即使这不是我正在寻找的行为): Function FillHere() Dim rngCaller As Range Cells(1, 1) = "HELLO" Cells(1, 2) = "WORLD" End Function 这也不工作。 但是,如果我使用F5从VBA启动这个function,它就会起作用! 在调用函数的时候,似乎不可能修改电子表格中的任何内容…尽pipe 我也试过(实际上这是我的第一个想法)从函数返回一个数组。 问题是,我只得到数组中的第一个元素(有一个技巧,这意味着select一个整个区域的公式在左上angular+ F2 + CTRL-SHIFT-ENTER,但这意味着用户需要知道通过提前数组的大小)。 我真的坚持这个问题。 我不是最终的最终用户,所以我需要一些非常容易使用的东西,最好没有任何争论。 PS:对不起,我已经问过这个问题了,但是当时我还没有注册,看来我不能再去参加其他线程。

如何从C / C + + dll传递string数组到VBA(Excel)

如何从C / C + + dll传递string数组到VBA(Excel) DLL在Visual Studio中 DLL不受pipe理,ATL等 关心安迪

使用Python和comtypes使用数组设置Excel范围?

使用comtypes来驱动Python,似乎有一些魔法发生在幕后,而不是将元组和列表转换为VARIANTtypes: # RANGE(“C14:D21”) has values # Setting the Value on the Range with a Variant should work, but # list or tuple is not getting converted properly it seems >>>from comtypes.client import CreateObject >>>xl = CreateObject("Excel.application") >>>xl.Workbooks.Open(r'C:\temp\my_file.xlsx') >>>xl.Visible = True >>>vals=tuple([(x,y) for x,y in zip('abcdefgh',xrange(8))]) # creates: #(('a', 0), ('b', 1), ('c', 2), ('d', 3), […]

将项目添加到数组VBA excel

我想添加date到一个数组,但不能做到这一点。 每次我尝试去做,我都会得到一个下标超出范围的错误。 我曾经在其他语言使用过数组,所以这应该工作,但它不是,我似乎不明白为什么。 下面我添加了目前无法使用的代码。 我想要做的是在用户input两个date后,我的代码应该存储的起始值,然后添加一个该date,并将其添加到数组等,直到我有一个数组列表中的所有date从开始date到结束date。 任何帮助将是非常感谢 Private Sub SearchButton4_Click() Dim wks As Excel.Worksheet, str1, str2, str3, str4 As Date, x As Integer Dim dateArray() As Date ReDim dateArray(1 To 1) As Date Set wks = Worksheets("Exceptions") str1 = Format(DateFromTextBox.Value, "dd-mm-yyyy") str3 = Format(DateToTextBox.Value, "dd-mm-yyyy") str2 = DateDiff("d", str1, str3) If str2 < 0 Then str2 […]

有条件的数组来计算百分位数

我有一些数据如下: val crit perc 0.415605498 1 perc1 0.475426007 1 perc1 0.418621318 1 perc1 0.51608229 1 perc1 0.452307882 1 perc1 0.496691416 1 perc1 0.402689126 1 perc1 0.494381345 1 perc1 0.532406777 1 perc1 0.839352016 2 perc2 0.618221702 2 perc2 0.83947033 2 perc2 0.621734007 2 perc2 0.548656662 2 perc2 0.711919796 2 perc2 0.758178085 2 perc2 0.820954467 2 perc2 […]

如果他们的名字属于数组,则删除工作表

我有一个工作簿与多个工作表命名像date如12-01-2015,12-02-2015,….等。我想创build一个代码,删除特定的工作表,如果他们的名字列在一个数组中。 我创build了一个代码,但它不起作用。 我的猜测是与“If”开头的错误语句有关。 我真的很感激任何提示,我错了 Sub DeleteSelectedSheets() Dim i As Long Dim Holidays() As Variant Holidays = Array("12-3-2015", "12-4-2015") For Each Worksheet In ActiveWorkbook If Worksheet(i).Name = Holidays(i) Then Application.DisplayAlerts = False Sheets(i).Delete Application.DisplayAlerts = True End If Next End Sub

在第一个索引中带有string的variables数组 – 用双types不匹配覆盖

我有一个变体数组,如下所示: “狗”“猫”“马” 我想覆盖这些值 1.01 2.02 3.03 码: sumHolder = loanSums(x) If sumHolder = "N/A" Then sumHolder = "0" End If loanSums(x) = vbNull loanSums(x) = sumHolder + trimmedRange(i, trimmedRngCols.paymentAmt) 我试图只分配双string,我得到一个types不匹配。 任何想法如何做到这一点