VBA Excel,细胞自我鉴定

我试图让A1:E5中的每个电话在3张工作表中自我识别。 所以每个将列出(示例:) Sheet1:$ A $ 3 Sheet1:$ A $ 4 Sheet12:$ B $ 2

Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim intRowIndex, intColumnIndex, intDimIndex As Integer 'Change Colors/Fonts and Resize Range("A1:A" & Rows.Count).Columns.AutoFit Columns("A:E").AutoFit For intDimIndex = 1 To 3 For intRowIndex = 1 To 5 For intColumnIndex = 1 To 5 Worksheets(intDimIndex).Cells(intRowIndex, Chr(64 + intColumnIndex)).Value = Sheets(intDimIndex).Cells(intRowIndex, Chr(intColumnIndex + 64)).Value = _ Sheets(intDimIndex).Name & ":$" & Chr(intColumnIndex + 64) & "$" _ & Str(intRowIndex) Next intColumnIndex Next intRowIndex Next intDimIndex 

然而盒子只是填写为“FALSE”

将您的代码还原为伪值,表明您实际上正在分配一个布尔值。

Cell1.Value = Cell2.Value = Cell3.Value

奇怪的是,你会在Worksheet_SelectionChange中做到这一点。

具有描述性名称是很好的,但是,如果名称太长,代码的可读性就会降低。 如果您必须上下或左右滚动,则可能需要考虑重构代码。

作为一条规则,我使用x,x1,x2 …遍历行,y,y1,y2 …遍历列。 因为我对此一致,这些都是很具描述性的名字。 每当你看到我使用x和x1我迭代两组行。 第一个循环variables是x,第二个是x1。

这里你声明三个variablesintRowIndex是intColumnIndex变体types,而intDimIndex是一个整数。

Dim intRowIndex, intColumnIndex, intDimIndex As Integer

当你声明一个variables,而不是跟随As和一个DataType,那么这个variables就是一个变体。 你会更好地声明你所有的行variables。 即使Integer会做,我也会声明列variables。

Dim x as long, y as long, w As Integer

 'Change Colors/Fonts and Resize Range("A1:A" & Rows.Count).Columns.AutoFit Columns("A:E").AutoFit For w = 1 To 3 For x = 1 To 5 For y = 1 To 5 With Worksheets(w) .Cells(x, y).Value = .Cells(x, y).Address(RowAbsolute:=True, ColumnAbsolute:=True) End With Next y Next x Next w