Vba 使用“范围”、“单元格”将特定单元格设置为字符串,然后合并并居中?
我试图将一个特定的单元格设置为我刚才用代码打开的文件的文件名。我所有的工作都正常,除了我不能让单元格值等于工作簿名。调试代码时,我可以看到wb name的变量是正确的字符串。在下面的代码中,当调用此子例程时,wbTempName将作为刚刚打开的工作簿的路径传递,而iTemp只是一个整数,它是在单独的子例程中找到的第一个空列。代码如下:Vba 使用“范围”、“单元格”将特定单元格设置为字符串,然后合并并居中?,vba,excel,Vba,Excel,我试图将一个特定的单元格设置为我刚才用代码打开的文件的文件名。我所有的工作都正常,除了我不能让单元格值等于工作簿名。调试代码时,我可以看到wb name的变量是正确的字符串。在下面的代码中,当调用此子例程时,wbTempName将作为刚刚打开的工作簿的路径传递,而iTemp只是一个整数,它是在单独的子例程中找到的第一个空列。代码如下: Sub CMM_93Cam(ByVal wbTempName As Workbook, ByVal iTemp As Integer) ' ' CMM_93Cam
Sub CMM_93Cam(ByVal wbTempName As Workbook, ByVal iTemp As Integer)
'
' CMM_93Cam Macro
'
'Set necessary variables
sColumnTwo = ConvertToLetter(iTemp + 2)
'Paste filename into sheet
wbTempName.Activate
sWBName = ActiveWorkbook.Name
Range(Cells(2, iTemp)).Value = sWBName
Range(Cells(2, iTemp), Cells(2, iTemp + 2)).Select
Selection.Merge
'Code that works
End Sub
调用此代码时,在RangeCells2,iTemp.Value=sWBName行上出现运行时错误1004:对象“\u Global”的方法“Range”失败
另一个问题是,我不认为我的代码合并和中心指示的细胞是工作我最初有它之前的行,我试图设置细胞值,认为这是造成问题
有人知道我做错了什么吗?尝试按如下方式修改代码:
Sub CMM_93Cam(ByVal wbTempName As Workbook, ByVal iTemp As Integer)
Application.DisplayAlerts = False
'Set necessary variables
sColumnTwo = ConvertToLetter(iTemp + 2)
'Paste filename into sheet
sWBName = wbTempName.Name
With ThisWorkbook.ActiveSheet
.Cells(2, iTemp).Value = sWBName
.Range(.Cells(2, iTemp), .Cells(2, iTemp + 2)).Merge
End With
'Code that works
Application.DisplayAlerts = True
End Sub
请注意,此宏将工作簿名称粘贴到运行当前宏代码的工作簿中的单元格中。如果要将工作簿名称粘贴到工作簿wbTempName中的单元格,将带有ThisWorkbook.ActiveSheet的行更改为带有wbTempName.ActiveSheet使用此代码,我得到一个找不到的方法或数据成员错误。将带有ThisWorkbook.ActiveSheets1的行更改为带有ThisWorkbook.WorksheetsSheets1并指定正确的工作表名称是否有方法可以引用活动工作表?在调用此子例程之前,将根据用户窗体中的optionbutton更改活动工作表。是的,使用ThisWorkbook.WorksheetsSheet1更改为使用ThisWorkbook.ActiveSheet