→ soyoso: 因為c5:c100為空白儲存格的話,變數a寫入為0 09/16 18:26
→ soyoso: (a+3)=3,這個迴圈非反序的話,初始值(4)需大於終止值(3) 09/16 18:26
→ soyoso: 因此c5:c100要以內文寫到的公式來回傳儲存格內的char(10) 09/16 18:26
→ soyoso: 換行的個數 09/16 18:26
→ soyoso: range.copy複製公式的那行動作移到a=cells(p,3).value上方 09/16 18:30
→ soyoso: 修正一下回文需大於方面,應是需大於"等於" 09/16 19:09
→ Kamikiri: 所以變數設立的當下就會直接取值了嗎? 09/16 22:03
→ soyoso: 變數設立?是指什麼?宣告dim或是a=range.value 09/16 22:05
→ Kamikiri: 我還以為是開始運算後才依序進行 09/16 22:05
→ Kamikiri: 因為IF後是先用到p才輪到i 我以為用到i時才會取a 09/16 22:07
→ Kamikiri: 如果是宣告當下就會直接提取的話 我就懂了 感謝 09/16 22:08
→ soyoso: 於a=range.value時就會將所指定儲存格的值,寫入變數a內 09/16 22:10
→ soyoso: 內文巨集宣告dim時並沒有寫入,是執行到上述回文動作時才 09/16 22:12
→ soyoso: 寫入到變數a內 09/16 22:12
後續改良成這樣後可以正常運作了,只會抓有值的欄位,
雖然還能再改良,但暫時以能用優先,感謝
Dim i, p, a, x As Integer
For p = 5 To 100
If Len(Cells(p, 1)) > 0 Then
Cells(3, 3).Copy Destination:=Cells(p, 3)
a = Cells(p, 3).Value
Else
End If
For i = 4 To (a + 3)
If Len(Cells(p, 1)) > 0 Then
Cells(p, i).Value = Len(Cells(p, i))
Else
End If
x = a + 3
If Len(Cells(p, 1)) > 0 Then
Cells(p, 2).Formula = "=TEXTJOIN(CHAR(10), TRUE,D" & p & ":AG" & p & ")"
Else
End If
Next
Next
※ 編輯: Kamikiri (123.193.189.222 臺灣), 09/16/2019 23:03:18
※ 編輯: Kamikiri (123.193.189.222 臺灣), 09/16/2019 23:05:55