Vba运行时错误:91

时间:2017-05-29 00:25:20

标签: excel vba outlook ms-word runtime-error

我正在尝试使用Outlook向Excel工作表中的 public class Guia extends BaseActivity implements AdapterView.OnItemClickListener{ String[] predios={"HVET - Hospital Veterinário", "FE - Faculdade de Educação", "BSA SUL - Bloco de Salas de Aula Sul", "BAES - Bloco de Salas de Aula Eudoro de Sousa", "FACE - Faculdade de Administração, Contabilidade e Economia", "FD - Faculdade de Direito", "PAT - Pavilhão Anísio Teixeira", "PJC - Pavilhão João Calmon", "IPOL/IREL - Instituto de Ciências Políticas/Relações Internacionais", "CIC/EST - Prédio de Ciência da Computação e Estatística", "RU - Restaurante Universitário", "IDA - Instituto de Artes", "ICC - Instituto Central de Ciência", "CDT - Centro de Tecnologia", "CPD - Centro de Informática", "FM/FS - Faculdade de Medicina/Saúde", "CEU - Casa do Estudante", "Centro Olímpico"}; ListView s; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.guia); s = (ListView) findViewById(R.id.predios); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.predios, R.id.textosiglas, predios); s.setAdapter(adapter); //This is class that implements the interface. s.setOnItemClickListener(this); } //This method is implemented using the interface @Override public void onItemClick (AdapterView<?> parent, View view, int position,long id){ //Trate o click de cada item aqui dentro usando a variavel position } } 中的每个电子邮件地址发送电子邮件,并在正文中插入Word文档。我编写了以下代码,但它给出了运行时错误91.我正在使用Office 2013。

column:A

1 个答案:

答案 0 :(得分:2)

如果您提供有关发生错误的行的信息,则会更容易提供帮助。例如,您有以下错误,很可能是您的问题的根源:

Set OutWordEditor = Nothing

您正在循环中执行此操作,但之后您不会在下一次迭代中设置OutWordEditor变量。因此,你得到的对象没有设置&#34;在第二次迭代中,在OutWordEditor.Content.Paste行。

我建议的解决方案是将这些语句移动到循环内

Set OutMail = OutApp.CreateItem(0)
Set OutWordEditor = OutMail.GetInspector.WordEditor

此外,你不需要两个嵌套循环,只需一个:

For Each row In rng.Rows
For Each cell In row.Cells
...
Next
Next

综上所述,你的(单循环)变成这样:

For Each cell In rng.Cells
    If Len(Trim(cell.Value)) = 0 Then Exit For ' <-- to stop at emty cell
    Set OutMail = OutApp.CreateItem(0)
    Set OutWordEditor = OutMail.GetInspector.WordEditor
    ... 'Rest of the loop
Next