Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.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 正在将发票数据复制到销售帐簿,宏不工作…Aaargh_Excel_Vba - Fatal编程技术网

Excel 正在将发票数据复制到销售帐簿,宏不工作…Aaargh

Excel 正在将发票数据复制到销售帐簿,宏不工作…Aaargh,excel,vba,Excel,Vba,正在尝试将“发票”数据保存到excel工作簿中的“销售手册”中。我的代码不起作用。任何帮助都是了不起的。Excel表示无法识别标识符…但为什么?它是!不是吗。。。这是密码- 注意-下面的代码有效。问题是我的工作表名称末尾有一个“空格”,因此标识符无法识别它。自由流 Sub UpdateSalesBook() Dim rng As Range Dim i As Long Dim a As Long Dim rng_dest As Range Application.Screen

正在尝试将“发票”数据保存到excel工作簿中的“销售手册”中。我的代码不起作用。任何帮助都是了不起的。Excel表示无法识别标识符…但为什么?它是!不是吗。。。这是密码-

注意-下面的代码有效。问题是我的工作表名称末尾有一个“空格”,因此标识符无法识别它。自由流

Sub UpdateSalesBook()
  Dim rng As Range
  Dim i As Long
  Dim a As Long
  Dim rng_dest As Range
  Application.ScreenUpdating = False
  i = 1
  Set rng_dest = Sheets("Sales Book").Range("D:F")
  ' Find first empty row in columns D:G on sheet Sales Book
  Do Until WorksheetFunction.CountA(rng_dest.Rows(i)) = 0
    i = i + 1
  Loop
  'Copy range A23:D27 on sheet Invoice to Variant array
  **Set rng = Sheets("Invoice").Range("A23:D27")** 'This is what excel doesn't recognise
  ' Copy rows containing values to sheet Sales Book
  For a = 1 To rng.Rows.Count
    If WorksheetFunction.CountA(rng.Rows(a)) <> 0 Then
      rng_dest.Rows(i).Value = rng.Rows(a).Value
      'Copy Invoice number
      Sheets("Sales Book").Range("A" & i).Value = Sheets("Invoice").Range("C18").Value
      'Copy Date
      Sheets("Sales Book").Range("B" & i).Value = Sheets("Invoice").Range("C15").Value
      'Copy Company name
      Sheets("Sales Book").Range("C" & i).Value = Sheets("Invoice").Range("A7").Value
      i = i + 1
    End If
 Next a
Application.ScreenUpdating = True

End Sub
Sub-UpdateSalesBook()
变暗rng As范围
我想我会坚持多久
暗淡如长
Dim rng_dest As范围
Application.ScreenUpdating=False
i=1
Set rng_dest=图纸(“销售账簿”)。范围(“D:F”)
'在活页销售手册的D:G列中查找第一个空行
直到工作表function.CountA(rng_dest.Rows(i))=0
i=i+1
环
'将表上发票A23:D27范围复制到变量数组
**设置rng=Sheets(“发票”)。范围(“A23:D27”)***这是excel无法识别的
'将包含值的行复制到工作表销售帐簿
对于a=1到rng.Rows.Count
如果工作表function.CountA(rng.Rows(a))为0,则
rng_dest.Rows(i).Value=rng.Rows(a).Value
'复制发票编号
表格(“销售账簿”)。范围(“A”和i)。价值=表格(“发票”)。范围(“C18”)。价值
“复制日期
图纸(“销售账簿”)。范围(“B”和i)。价值=图纸(“发票”)。范围(“C15”)。价值
'复制公司名称
表格(“销售账簿”)。范围(“C”和i)。价值=表格(“发票”)。范围(“A7”)。价值
i=i+1
如果结束
下一个
Application.ScreenUpdating=True
端接头

哪行代码失败?您是否尝试过使用
工作表(“发票”)。范围
等?或者完全限定为
ActiveWorkBook.Worksheets(“发票”).Range
等?正如@MiguelH所说,这些问题中的大多数都是因为引用不限定。我首先将您的SHE(即,
Dim oWS)限定为工作表:Set oWS=Thisworkbook.Worksheets(“发票”)
。现在您可以尝试:
Set rng=oWS.Range(“A23:D27”)
你的代码对我有效。这是一个非常奇怪的错误,出现在你突出显示的行上。可能行中有一些奇怪的不可打印字符-你可以尝试删除并重新键入它。@Zac你能告诉我这将在代码块中的什么位置吗?顶部有其他Dim,但集合在哪里?在哪一行代码上失败?您是否尝试过使用
工作表(“发票”).Range
等?或者完全限定为
活动工作簿。工作表(“发票”).Range
等?正如@MiguelH所说,大多数问题都是因为引用不合格。我首先要限定您的SHE(即
将oWS设置为工作表:Set oWS=Thisworkbook.Worksheet(“发票”)
。现在您可以尝试:
设置rng=oWS.Range(“A23:D27”)
你的代码对我有效。这是一个非常奇怪的错误,出现在你突出显示的行上。可能行中有一些奇怪的不可打印字符-你可以尝试删除并重新键入它。@Zac你能告诉我这将在代码块中的什么位置吗?在顶部加上其他Dim,但是集合在哪里?