不能合并VBA 2007工作表中的单元格不活动

我试图创build一个button,根据我给他的date和年份做出自动的工作安排。 它会创build一个名称在string – 年的新工作表

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 

或表(年).Range(Cells(row,j),Cells(row,(j + 1)))。Merge or Worksheets(year).activate

但没有人帮助任何人?

当你从另外一张纸上引用一个范围时,你需要说明它在调用范围和单元格时的位置

所以,而不是写作

 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 

请注意,当我调用Range和Cells时,我是如何引用表单的

你也需要参考这张表,当你引用单元格也是这种格式

单元格(i,j),表单(“年”)。单元格(i,j + 3))。

Sooraj

当您执行Range(Cells(row, j), Cells(row, (j + 1))).Merge您正在读取代码的工作表,它可能不是“年”工作表。

尝试做Worksheets(Year).Range(Cells(row, j), Cells(row, (j + 1))).Merge代替。

如有需要,请在以下时间启

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