从单元读取string时出错

Sub nationalityscript() Dim i As Integer Dim temp As Integer Dim Country As String Dim strEnd As Integer Dim strComplete As String i = 0 Do While i < 300 Dim k As Integer Dim a As String strComplete = Cells(h, i).Value strEnd = Len(strComplete) k = 0 Do While k < strEnd a = Cells(h, i).Value.Substring(k, k) If a = "," Then temp = a End If k = k + 1 Loop Country = Cells(h, i).Value.Substring(temp, strEnd) i = i + 1 Loop End Sub 

嗨,这是我第一天用vba编程,所以请在我身上轻松一下。

我正在写excel中macros,专注于列h 。 在列h中find的任何string的代码将通过,确定最后一个“,”后的string的最后一部分,然后用它所得到的子stringreplace该单元格中的string。

我认为这可能与我的问题无关,因为我的问题是将单元格中的string分配给一个新的variables。

我的问题是在这里突出显示的行。 在这里输入图像说明

我得到的错误是:

运行时错误1004,对象定义或应用程序定义的错误。

你的程序正在寻找一些名为“h”的variables或标记。 由于没有一个,编译器抱怨。 Cells取整数的行和列,而不是列字母。 所以如果用8(第8列)代替h,就应该解决这个问题。

更新

对不起,我想你也希望Cells(i, 8)的语法是Cells(RowNumber, ColumnNumber)

首先,列j中第i行的值为Cells(i,j)。

其次,您需要将h声明为列或常量…

第三,我不知道循环variables声明是这样的

 Do While CONDITION Dim a as string Wend 

我不认为这会工作。