宏仅适用于英文excel版本
对于我的一个vba代码,我有一个快速的问题,该代码基本上是将12个表合并到一个名为temp range B8的表中。问题是,如果我使用Excel 2016英文版运行它,它在任何计算机上都可以正常工作,但如果Excel是2016西班牙文版,它将失败并出现错误:“执行错误1004” 我已经创建了12个带有宏的模块,其中只有一个模块在以下代码中无法使用西班牙语版本宏仅适用于英文excel版本,excel,vba,Excel,Vba,对于我的一个vba代码,我有一个快速的问题,该代码基本上是将12个表合并到一个名为temp range B8的表中。问题是,如果我使用Excel 2016英文版运行它,它在任何计算机上都可以正常工作,但如果Excel是2016西班牙文版,它将失败并出现错误:“执行错误1004” 我已经创建了12个带有宏的模块,其中只有一个模块在以下代码中无法使用西班牙语版本 Range("B8").Consolidate Sources:=Array( _ "En
Range("B8").Consolidate Sources:=Array( _
"Enero[#All]", "Febrero[#All]", "Marzo[#All]", "Abril[#All]", "Mayo[#All]", "Junio[#All]", "Julio[#All]", "Agosto[#All]", "Septiembre[#All]", "Octubre[#All]", "Noviembre[#All]", "Diciembre[#All]" _
), Function:=xlCount, TopRow:=True, LeftColumn:=False, CreateLinks:=True
将引用类型从#All更改为#Todo是修复方法,我现在很好我很高兴您找到了解决问题的意大利版Excel解决方案 也许,您可以对代码进行一些更改,以便它可以处理这两种情况(英语和意大利语)。例如,您可以使用以下函数返回MsoLanguageID For Excel(灵感来源于): 然后,您可以使用if语句处理这两种情况,如下所示:
If ExcelLanguage = msoLanguageIDItalian Then
Range("B8").Consolidate Sources:=Array( _
"Enero[#Todo]", "Febrero[#Todo]", "Marzo[#Todo]", "Abril[#Todo]", "Mayo[#Todo]", "Junio[#Todo]", "Julio[#Todo]", "Agosto[#Todo]", "Septiembre[#Todo]", "Octubre[#Todo]", "Noviembre[#Todo]", "Diciembre[#Todo]" _
), Function:=xlCount, TopRow:=True, LeftColumn:=False, CreateLinks:=True
Else
Range("B8").Consolidate Sources:=Array( _
"Enero[#All]", "Febrero[#All]", "Marzo[#All]", "Abril[#All]", "Mayo[#All]", "Junio[#All]", "Julio[#All]", "Agosto[#All]", "Septiembre[#All]", "Octubre[#All]", "Noviembre[#All]", "Diciembre[#All]" _
), Function:=xlCount, TopRow:=True, LeftColumn:=False, CreateLinks:=True
End If
关于所有MsoLanguageID值,请参见。我想我需要用Todo来更改单词all,我现在要尝试一下,并更新问题,如果这能解决问题CimalTurn,超级棒的答案,我将把这篇文章保存在我最喜欢的页面中,这对我来说是新的知识。我试图了解excel是否有办法在识别语言不同时自动进行更改,而不是编写两次整个合并。我建议根据语言设置一个变量,并将合并连接起来,如下所示:
“Enero”&stringvariblecontaininglanguageSpecificWordInBrackets,
等等on@Nacorid–是的,我想过这样做,但如果只有两种语言,我认为收益并不重要。如果有两种以上的语言,我肯定会这样做。根据公司规模和所有情况,总是有可能添加更多的语言:)不过你是对的,如果确定它只使用两种语言,那么就没有理由用字符串连接来混乱方法
If ExcelLanguage = msoLanguageIDItalian Then
Range("B8").Consolidate Sources:=Array( _
"Enero[#Todo]", "Febrero[#Todo]", "Marzo[#Todo]", "Abril[#Todo]", "Mayo[#Todo]", "Junio[#Todo]", "Julio[#Todo]", "Agosto[#Todo]", "Septiembre[#Todo]", "Octubre[#Todo]", "Noviembre[#Todo]", "Diciembre[#Todo]" _
), Function:=xlCount, TopRow:=True, LeftColumn:=False, CreateLinks:=True
Else
Range("B8").Consolidate Sources:=Array( _
"Enero[#All]", "Febrero[#All]", "Marzo[#All]", "Abril[#All]", "Mayo[#All]", "Junio[#All]", "Julio[#All]", "Agosto[#All]", "Septiembre[#All]", "Octubre[#All]", "Noviembre[#All]", "Diciembre[#All]" _
), Function:=xlCount, TopRow:=True, LeftColumn:=False, CreateLinks:=True
End If