我的研究表明我需要使用Visual Basic。我是一名程序员/开发人员,但从未使用过VB,所以如果有人能把它愚蠢下去,我们将不胜感激。
这是我的工作excel功能:
=IF(MATCH(1,E1:DP1,0),D1,FALSE)
我想循环其中的一些数字,以便:
=IF(MATCH(141,E1:DP378,0),D378,FALSE)
然后接受我的答案(这将是字符串,因为D列是所有字符串,excel文件的其余部分是数字) = CONCAT
结束目标:根据表格中的数据填充141个String数组。
我继续这样做了第一次尝试VBA:
Sub myFunc()
'Initialize Variables
Dim strings As Range, nums As Integer, answer() As Variant, listAnswers() As Variant
'set variables
strings = ("C1:C378")
nums = 141
i = 0
j = 0
ReDim Preserve answer(i)
ReDim Preserve listAnswers(j)
'answer() = {""}
'for each in nums
For counter = 0 To nums
ReDim Preserve listAnswers(0 To j)
'set each list of answers
listAnswers(i) = Join(answer(), "insertJSONcode")
j = j + 1
'for each in Stings
For Each cell In strings
If cell <> "" Then
ReDim Preserve answer(0 To i)
answer(i) = 'essentially this: (MATCH(2,E1:DP1,0),D1,FALSE)
i = i + 1
end If
next cell 'end embedded forEach
Next LCounter 'end for loop
'is this possible? or wrong syntax?
Range("A:A").Value = listAnswers() ' should print 141 arrays from A1 to A141
End Sub
编辑:
重要提示 我不需要按名称调用工作表。我没有成功地在A列中通过excel表成功写入整数值。
另外,我写的VBA从来没有打算工作,我知道它至少在答案(i)应该写东西的地方被打破了。我只是把那些代码放在那里表明我能够至少能够进入适当逻辑的距离,并证明我已经付出了一些努力来解决问题并给出一个粗略的起点。
这是excel格式的图像。 C列下降到378,E到DP列出的数字由数据库填充。它由空白单元格和1到141之间的数字组成。
=IF(MATCH(2,E2:DP2,0),D2,FALSE)
如果我要将其完全输入到单元格B2中,它将输出正确的答案&#34; text2&#34;。这是整洁的,但我需要写出每个文本2的实例,然后CONCAT那些结果。到目前为止很容易,我可以将它一直拖到B列,然后将所有的&#34;文本&#34;一列中的字符串,CONCAT那列,答案就在那里。但是,我不需要#2,我需要1到141之间的每个数字。另外,我想避免在每个数字的顶部写入141个带有CONCAT的列。