Excel can';VBA 2007工作表中的t合并单元格不活动

Excel can';VBA 2007工作表中的t合并单元格不活动,excel,vba,merge,range,Excel,Vba,Merge,Range,我试图创建一个按钮,根据我给他的日期和年份自动安排工作。 它创建一个新的工作表,其名称在字符串-year中 Sub Create_Arran_Click() Dim year As String Dim sdate As Date Dim row As Integer year = Worksheets("Main").Cells(17, 4) sdate = Worksheets("Main").Cells(18, 4) Sheets.Add.Name = year For i = 1

我试图创建一个按钮,根据我给他的日期和年份自动安排工作。 它创建一个新的工作表,其名称在字符串-year中

Sub Create_Arran_Click()

Dim year As String
Dim sdate As Date
Dim row As Integer

year = Worksheets("Main").Cells(17, 4)
sdate = Worksheets("Main").Cells(18, 4)
Sheets.Add.Name = year

For i = 1 To 56
row = ((i - 1) * 12) + 2
Worksheets(year).Cells(row, 1) = "week " & i
Worksheets(year).Cells(row + 1, 1) = "day"
Worksheets(year).Cells(row, 1).Font.Bold = True
For j = 2 To 15

    (!)Range(Cells(row, j), Cells(row, (j + 1))).Merge 
    Worksheets(year).Cells(row, j) = sdate + (j - 2)
    (!)Range(Cells(row + 1, j), Cells(row + 1, j + 1)).Merge 
    Worksheets(year).Cells(row + 1, j) = Weekday(sdate + (j - 2), vbSunday)

j = j + 2
Next
sdate = sdate + 7
Next'
问题是标有“!”的行没有在“年度”表中进行合并。我尝试了以下几种方法:

          'Worksheets(year).Range(Cells(row, j), Cells(row, (j + 1))).Merge
或 表格(年份)。范围(单元格(第j行)、单元格(第j+1行))。合并 或 工作表(年份)。激活

但没有任何帮助 有人吗?

当您执行
范围(单元格(第j行)、单元格(第j+1行))。合并
您使用的是编写代码的工作表,它可能不是“年份”工作表

尝试执行
工作表(年)。范围(单元格(行,j),单元格(行,(j+1))。合并

如有必要,请在执行以下操作之前激活:

Worksheets(Year).Activate
Worksheets(Year).Range(Cells(row, j), Cells(row, (j + 1))).Merge

当您从另一个工作表中引用一个范围时,您需要在调用范围和单元格时指出该范围的位置

与其写,不如写

Worksheets(year).Range(Cells(row, j), Cells(row, (j + 1))).Merge
这样做

with Worksheets(year)
.Range(.Cells(row, j), .Cells(row, (j + 1))).Merge
end with

请注意,在调用范围和单元格时,我是如何引用工作表的。

在引用此格式的单元格时,您需要引用工作表

表格(“年”)。范围(表格(“年”)。单元格(i,j),表格(“年”)。单元格(i,j+3))。合并


Sooraj

在Excel 2010中,这段代码对我很有用-你说的是标有“!”的行吗不工作,但未看到标记的行。我再次编辑它。它是否合并了工作表(年)中的单元格?是的,在工作表(年)
的56周内,它合并了每个
日期的两个单元格,并且合并了每个
日期的两个单元格
只需在合并前激活工作表即可(合并前必须激活具有合并单元格的每个工作表)谢谢-应该怎么写?工作表(年)。激活。范围…合并或其他行:工作表(年)。激活,然后范围…合并?感谢您的回答-不幸的是,我已经尝试了这两种方法,但都无效,此-工作表(年)。范围(单元格(行,j),单元格(行,(j+1))。合并-无法编译: