當前位置:編程學習大全網 - 編程軟體 - 根據Sheet1表的值,自動生成到Sheet2中對應的列中,用excel的VBA編程,代碼如何寫才能實現?

根據Sheet1表的值,自動生成到Sheet2中對應的列中,用excel的VBA編程,代碼如何寫才能實現?

答:

Sub?Demo()

Dim?CurRng?As?Range

Dim?DesRng?As?Range

Dim?ExtRng?As?Range

Dim?Cell?As?Range

Dim?Cnt?As?Integer,?i?As?Integer,?j?As?Integer

Dim?TempStr?As?String

Set?CurRng?=?Range("A2")

Set?DesRng?=?Sheets("Sheet2").Range("C2")

Do?Until?CurRng.Row?=?Rows.Count

If?CurRng.End(xlDown).Row?=?Rows.Count?Then

Set?ExtRng?=?Range(CurRng,?Cells(Rows.Count,?"G").End(xlUp).Offset(0,?-6))

Else

Set?ExtRng?=?Range(CurRng,?CurRng.End(xlDown).Offset(-1,?0))

End?If

For?i?=?1?To?2

If?i?=?1?Then

Set?ExtRng?=?ExtRng.Offset(0,?4)

Else

Set?ExtRng?=?ExtRng.Offset(0,?2)

End?If

Cnt?=?Application.CountA(ExtRng)

For?Each?Cell?In?ExtRng

If?Not?IsEmpty(Cell)?Then

TempStr?=?TempStr?&?"i:"?&?j?&?";s:"?&?Len(Cell)?&?":"?&?""""""?&?Cell?&?""""""?&?";"

End?If

j?=?j?+?1

Next

With?DesRng

.Offset(0,?3)?=?"a:"?&?Cnt?&?":{"?&?TempStr?&?"}"

.Offset(0,?0)?=?CurRng.Offset(0,?i)

.Offset(0,?4)?=?CurRng

.Offset(0,?5)?=?i?-?1

End?With

TempStr?=?"":?Cnt?=?0:?j?=?0

Set?DesRng?=?DesRng.Offset(1,?0)

Next

Set?CurRng?=?CurRng.End(xlDown)

Loop

End?Sub

  • 上一篇:猿輔導少兒編程課程好嗎?
  • 下一篇:學而思的秘籍真的好用嗎?
  • copyright 2024編程學習大全網