Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.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
如何从单元格中提取列(Excel、VBA)_Excel_Vba_Range - Fatal编程技术网

如何从单元格中提取列(Excel、VBA)

如何从单元格中提取列(Excel、VBA),excel,vba,range,Excel,Vba,Range,我在尝试编写第一个Excel VBA宏时遇到(运行时错误“1004”:应用程序定义或对象定义错误)错误。我在stack overflow和其他网站上也看到过类似的问题,但我的问题似乎比其他人的问题更基本 目前,我正在尝试从一张工作表的两个单元格中获取数据,并将它们写入另一张工作表。我知道,尝试查找我按单元格或行引用的单元格的列或行是不必要的,但最终我将使用for循环,并用变量替换特定的单元格引用 以下是我的两行代码: Worksheets("Sheet2").Range("A1").Value

我在尝试编写第一个Excel VBA宏时遇到(运行时错误“1004”:应用程序定义或对象定义错误)错误。我在stack overflow和其他网站上也看到过类似的问题,但我的问题似乎比其他人的问题更基本

目前,我正在尝试从一张工作表的两个单元格中获取数据,并将它们写入另一张工作表。我知道,尝试查找我按单元格或行引用的单元格的列或行是不必要的,但最终我将使用for循环,并用变量替换特定的单元格引用

以下是我的两行代码:

Worksheets("Sheet2").Range("A1").Value = Worksheets("Sheet1").Range("A" & Worksheets("Sheet1").Range("B2").Row).Value
Worksheets("Sheet2").Range("B1").Value = Worksheets("Sheet1").Range(Worksheets("Sheet1").Range("B2").Column & "1").Value
第一行运行良好。它将Sheet1的A2写入Sheet2的A1。 第二行没有运行,没有将Sheet1的B1写入Sheet2的B1,引用了错误,我不确定原因


谢谢你的时间和帮助

.Columns属性返回整数,而不是字母。如果要定义具有数字行和数字列的范围,请使用

Worksheets("Sheet2").Range("B1").Value = Worksheets("Sheet1").Cells(1, Range("B2").Column).Value

我想这有一个更大的目的,但实际上,这是一个非常冗长的代码。

您问题的最后一行说您想用Sheet1-A2填充Sheet2-A1,用Sheet1-B1填充Sheet2-B1

最直接的方法是

Worksheets("Sheet2").Range("A1") = Worksheets("Sheet1").Range("A2")
Worksheets("Sheet2").Range("B1") = Worksheets("Sheet1").Range("B1")

我和你一样是VBA的初学者。您不需要了解VBA中的所有内容,就可以高效地使用它。我通过录制制作了第一个宏,它成功了(但效率低得令人绝望)

我有一个与你类似的问题:在另一张工作表上查找数据。我创建了以下函数:

函数GetMyNumber(C3ll) MyCol=C3ll.Column GetMyNumber=mycl 端函数

要在电子表格中使用它,只需在某些单元格中输入公式,如D5

=GetMyNumber(D5)

重新计算时,数字4显示在单元格D5中。如果将单元格D5复制到单元格F3中,您将在F3中看到,=GetMyNumber(F3),calculate将返回一个6。当然,您可以填写或横跨,参数将更改为公式所在的单元格。如果需要,可以使用引用任何单元格的参数进行偏移

完成此操作后,可以插入代码进行匹配,并执行其他任务,这些任务使用列编号mycl从其他工作表中提取编号。记住,MyCol是一个整数

希望这有帮助