尝试写入单元格(应用程序定义或对象定义错误)

时间:2015-05-29 14:37:51

标签: excel vba excel-vba

我有以下代码:

{{1}}

我的想法是,我想将wb.Name粘贴到单元格,其中num从1开始并递增,从而产生一个很好的文件名列。 我已经使用VBA 3天了,并且已经走到了尽头,任何帮助都会很棒。

2 个答案:

答案 0 :(得分:0)

假设Num已设置为有效值而不是0,而wb指的是有效对象,则应从范围地址中删除冒号,且不存在SetValue VBA范围的方法:

Range("A" & num).Value = wb.Name

答案 1 :(得分:0)

很少有事情要注意..

  1. 答:x不是有效范围(假设您的情况下为num是一个整数并指定非零值)
  2. .SetValue不是有效的方法,因此将其更改为
  3. y.Sheets(" Sheet1")。范​​围(" A"& num).value =(wb.Name)

    1. 由于它的字符串比较,你的If条件可能无效,除非你改变它绝对匹配if(a = 0)之类的事情。
    2. 记住,"如果string1等于string2,则StrComp函数将返回0."

      1. 您不需要为每个匹配的值激活目标工作簿,您可以简单地引用它而无需激活它。如果要激活在新的Excel实例中打开的新工作簿,这实际上可能会失败。

      2. 请记住,在excel#N / A之前没有单个Quote(内部单元格)被视为reserver工作NA并且无法使用StrComp方法进行比较。相反,你可以简单地使用ISNA(),如果你想要的比较是" #N / A"。但是它在VBA中不可用,因此使用替代方法。

      3. 这是简化版。如果它失败了,请告诉我。

        unsigned char *ptr = strtok(unscharbuff,"-");
            // is assignment also ok to unsigned char?