不能合并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