Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba =左(H2,5),显示所有行的数据,并在数据的最后一行停止_Vba_Excel - Fatal编程技术网

Vba =左(H2,5),显示所有行的数据,并在数据的最后一行停止

Vba =左(H2,5),显示所有行的数据,并在数据的最后一行停止,vba,excel,Vba,Excel,您好,有人能用一些VBA代码告诉我在M列中插入formula=LEFT(H2,5),然后在最后一行数据处停止。 它将引用的数据将从web中插入,因此当我刷新数据时,行可能或多或少是固定的,因此不使用VB就无法固定 谢谢 里斯一段时间循环对你有用吗 Dim i As Integer i = 2 'starting row number While Cells(i, 1).Value <> "" 'Empty row Cells(i, 13).Formula = "=LEFT(H

您好,有人能用一些VBA代码告诉我在M列中插入formula=LEFT(H2,5),然后在最后一行数据处停止。 它将引用的数据将从web中插入,因此当我刷新数据时,行可能或多或少是固定的,因此不使用VB就无法固定

谢谢
里斯

一段时间循环对你有用吗

Dim i As Integer
i = 2 'starting row number
While Cells(i, 1).Value <> "" 'Empty row
    Cells(i, 13).Formula = "=LEFT(H2,5)" 'replace this with something for that row, concatenating i to H will work i think.
    i = i + 1
Wend
Dim i作为整数
i=2'起始行编号
而单元格(i,1).Value“”为空行
单元格(i,13)。公式=“=LEFT(H2,5)”,用该行的某个内容替换它,我认为将i连接到H会起作用。
i=i+1
温德

您还需要在数据刷新时将此代码放入,以便它再次将公式插入所有行。

while循环对您有用吗

Dim i As Integer
i = 2 'starting row number
While Cells(i, 1).Value <> "" 'Empty row
    Cells(i, 13).Formula = "=LEFT(H2,5)" 'replace this with something for that row, concatenating i to H will work i think.
    i = i + 1
Wend
Dim x As Long

x = Application.CountA(ActiveSheet.Columns(13))

ActiveSheet.Cells(2, 13) = "=LEFT(H2,5)"

ActiveSheet.Cells(2, 13).Resize(x - 1).Formula = ActiveSheet.Cells(2, 13).Formula
Dim i作为整数
i=2'起始行编号
而单元格(i,1).Value“”为空行
单元格(i,13)。公式=“=LEFT(H2,5)”,用该行的某个内容替换它,我认为将i连接到H会起作用。
i=i+1
温德
您还需要在刷新数据时将此代码放入,以便将公式再次插入所有行

Dim x As Long

x = Application.CountA(ActiveSheet.Columns(13))

ActiveSheet.Cells(2, 13) = "=LEFT(H2,5)"

ActiveSheet.Cells(2, 13).Resize(x - 1).Formula = ActiveSheet.Cells(2, 13).Formula
使用excel函数CountA获取需要填充的行总数,并将该数字分配给x

然后将实际公式放在单元格M2上,然后使用resize函数复制公式直到最后一行

使用excel函数CountA获取需要填充的行总数,并将该数字分配给x


然后将实际公式放在单元格M2上,然后使用resize函数复制公式,直到最后一行。

此操作不需要循环:

Sub qwerty()
    Dim N As Long, r As Range
    N = Cells(Rows.Count, "H").End(xlUp).Row
    Set r = Range("M2:M" & N)
    r.Formula = "=LEFT(H2,5)"
End Sub

您会发现公式中的地址调整与复制/粘贴中的地址调整一样。

您不需要循环:

Sub qwerty()
    Dim N As Long, r As Range
    N = Cells(Rows.Count, "H").End(xlUp).Row
    Set r = Range("M2:M" & N)
    r.Formula = "=LEFT(H2,5)"
End Sub

您会发现公式中的地址会像复制/粘贴一样进行调整。

这非常有效,谢谢,但我无法通过单击另一张纸上的按钮来运行它,但我会努力的out@Mils请注意,这只是演示代码…………您必须调整它以满足您的特定需求…………是的,Gary,我明白了,我只是想说声谢谢,以示感谢,我失去了与编码的联系,因为离开大学后我已经多年没有做过编码了,只是想一步一步地重新开始。这很好,谢谢,但我不能通过点击另一张纸上的按钮来运行它,但我会努力的out@Mils请注意,这只是演示代码…………您必须调整它以满足您的特定需求…………是的,Gary,我明白我只是想说声谢谢以表示我的感激,我与编码失去了联系,因为我离开大学后多年没有做过编码,只是想一步一步地重新开始