我已停止使用相对寻址,并停止使用[]代替Range。起作用(但不正确)的代码在
下面Dim rStat, cLoan As Integer
Dim tabname, xFrom As String
Sheets("Status").Select
[a1].FormulaR1C1 = "=Now()"
Sheets("Status").Select
cLoan = 0
Do While Cells(2, 2 + 3 * cLoan) <> Empty
rStat = 4
tabname = Sheets("Status").Cells(2, 2 + 3 * cLoan)
While Cells(rStat, 1 + 3 * cLoan) <> Empty
If (Sheets("Status").Cells(rStat, 3 * cLoan + 2) = Empty) _
Or (Sheets("Status").Cells(rStat, 3 * cLoan + 3) = Empty) Then
Sheets(tabname).Range(Sheets("Status").Range(Sheets("Status").Cells(rStat, 1
+ 3 * cLoan).Value)) = [a1]
Sheets(tabname).Range(Sheets("Status").Range(Sheets("Status").Cells(rStat, 1
+ 3 * cLoan)).Value).NumberFormat = "m/d/yyyy"
End If
rStat = rStat + 1
Wend
cLoan = cLoan + 1
Loop
在第一次迭代中,空白单元格的测试失败,因此跳过了主题代码。测试通过了第二次迭代,因此rStat为5。cStat仍为零。
“状态”表上的数据结构[价值1000字]是
' A B C P
'4 P3 aa bb P3
'5 P4 cc
'6 P5 dd
该测试检测到C5为空白,因此任务是将日期[A1]放在选项卡名称表的P4 [A5的内容]中。即tabname.Range(“ P4”)=日期,其中P4来自A5。
代码将日期放置在P3而不是P4。
我确定该代码正在使用状态表上的P4地址[注意,数据P3存储在单元格P4中],并将该地址P3上的内容用作选项卡名称表上的目标。也就是说,tabname.Range(“ P3”)=日期。
我尚未确定这样做的方式或原因。
从2 ['store'和'format']行的第一行中删除“ .value”不会更改目标或其内容。仍然为tabname.Range(“ P3”)=日期。
我需要说出tabname.Range(“ Status.Range(” A5“))=日期的日期
如果我取出第一个“ Sheets(“状态”)。”,
Sheets(tabname).Range(Range(Sheets("Status").Cells(rStat, 1 + 3 *
cLoan)).value) = [a1]
tabname.P3没有存储任何[空白?]-两次。 tabname.P3被选中,但在宏完成后为空。第三次运行相同的代码时,出现编译器错误:突出显示第二个“范围”,“参数数量错误或属性分配无效。”
我删除了“ .value”并再次运行。没有编译器错误,但tabname.O3突出显示,P3和P4仍然有假值,我将它们放在此处以查看是否忽略了它们或存储了空白。他们都被忽略了-仍然是我的虚假价值观。
我将假数据放在tabname.O3中,以查看其是否为空白或被忽略/仅突出显示,然后再次出现编译器错误。
任何建议将不胜感激。
我当前的代码运行正常。 状态表的宽度超过26列,因此我必须计算列引用[colLetter()]
rStat = 4
tabname = Sheets("Status").Cells(2, 2 + 3 * cLoan)
While Cells(rStat, 1 + 3 * cLoan) <> Empty
A_Stat = colLetter(1 + 3 * cLoan) & CStr(rStat)
数据存储正确,并且下一行(该日期的格式)也有效。我期望比我做更多的格式化。
Sheets(tabname).Range(Sheets("Status").Range(A_Stat)).Value = [a1]
Sheets(tabname).Range(Sheets("Status").Range(A_Stat)).NumberFormat =
"m/d/yyyy"
一切解决后,如何退出/离开该帖子?刚退出发布?指示中说“不要说谢谢”。
答案 0 :(得分:1)
例如:
Dim thisSheet As WorkSheet
Dim thatSheet As WorkSheet
Set thisSheet = ThisWorkbook.Sheets("this")
Set thatSheet = ThisWorkbook.Sheets("that")
thatSheet.Range(thisSheet.Range("A5").Value) = Date
如果工作表“ this”上的A5包含值“ P4”,则此代码将填充工作表“ that”上P4中的日期