iT邦幫忙

1

如何在特定儲存格加入文字

如下圖,如果我想要在每個數字1-5並且空兩格中加入我想要的文字,如「流量」一詞(最終呈現如行C),請問要用甚麼語法去寫呢? (原本的檔案有3000多筆。實在無法一個一個複製貼上)

感謝邦友!
https://ithelp.ithome.com.tw/upload/images/20200803/20129079oUlSttglZf.jpg

1
海綿寶寶
iT邦大神 1 級 ‧ 2020-08-03 18:21:44
最佳解答

1.使用前請先備份資料
2.不支援重覆執行

Sub Filler()
    Range("A65535").End(xlUp).Select
    While True
        ActiveCell.Offset(3, 0) = "流量"
        If ActiveCell.Row > 4 Then
            ActiveCell.Offset(-4, 0).Select
        Else
            Exit Sub
        End If
    Wend
End Sub
1
ccenjor
iT邦新手 3 級 ‧ 2020-08-03 19:11:54

我不像海綿大大VBA那麼強,我只會用公式作業,
C1輸入1
C2輸入公式:
=IF(MOD(ROW(A2)-1,4)=0,OFFSET(C1,-3,0,1,1)+1,IF(MOD(ROW(A2),4)=0,"流量",""))
再向下複製到要求的列數。
https://ithelp.ithome.com.tw/upload/images/20200803/20109881FOfwovmoRK.png

1
froce
iT邦大師 1 級 ‧ 2020-08-03 20:30:35

練習一下有點生疏的golang。XD

package main

import (
	"os"
	"strconv"

	xlsx "github.com/360EntSecGroup-Skylar/excelize/v2"
)

func main() {
	var wb *xlsx.File
	var err error
	if fileExists("test.xlsx") {
		wb, err = xlsx.OpenFile("test.xlsx")
		if err != nil {
			panic(err)
		}
	} else {
		wb = xlsx.NewFile()
	}
	defer wb.SaveAs("test.xlsx")

	if wb.GetSheetIndex("Sheet1") == -1 {
		wb.NewSheet("Sheet1")
	}

	for i := 4; i < 3000; i += 4 {
		wb.SetCellValue("Sheet1", "C"+strconv.Itoa(i), "流量")
	}

}

func fileExists(filename string) bool {
	info, err := os.Stat(filename)
	if os.IsNotExist(err) {
		return false
	}
	return !info.IsDir()
}

我要發表回答

立即登入回答