Góp ý cho bạn:Nhờ mọi người giúp đỡ theo yêu cầu trong file đính kèm.
Xin chân thành cảm ơn !
Góp ý cho bạn:
1/ Bạn muốn làm cái gì thì nên nêu rỏ ràng, cụ thể vấn đề cần chứ không nên đưa cái ảnh ngang xương như thế thì chả thành viên nào hiểu.
2/ Thông thường người ta chứa ảnh trong Folder nào đó, muốn thay tên ảnh hàng loạt thì người ta lấy tên File vào 1 cột nào đó trên sheet và thay tên ảnh ở cột kế bên.
3/ Cần có 1 sheet danh mục với mã hàng, tên hàng, mô tả hàng hóa (nếu cần), khi chọn 1 loại trong danh mục thì nó sẽ tự động gán hình vào.
Tại bác suy nghĩ khách quan cho nên không hiểu. Cứ thay đổi lối suy nghĩ của mình theo chủ quan thì sẽ thấy bất cứ cái gì mình muốn làm đều là trực quan tuốt.Tôi không hiểu cái trực quan này, và cũng không hiểu sao nó lại quan trọng thế. ...
Tôi không hiểu cái trực quan này, và cũng không hiểu sao nó lại quan trọng thế. Pinture 1 hay 2, 3, 4, 5 thì bạn cũng có nhìn thấy đâu? Chỉ khi bạn chọn thì mới nhìn thấy. Sao lại bắt buộc phải theo thứ tự? Mà nó làm bạn nóng mắt? Tại sao?
Nếu cần có text thì nên ghi tên ảnh, chú giải, tên sản phẩm ...
Nếu tôi nhìn không lầm thì còn thiếu trường hợp: có ảnh nhưng không có số. Giải quyết thế nào? Để nguyên, rút thăm hoặc lấy từ lô đề?![]()
Bạn vào Selection Pane ở mục Page Layout sẽ thấy toàn bộ Tên của Ảnh
(Vào Bố Trí Trang -> Ngăn lựa chọn)
Còn việc code để đạt được yêu cầu của bạn, quá nhiều giải thuật, nên tôi không thể giúp bạn.
Nhờ mọi người giúp đỡ theo yêu cầu trong file đính kèm.
Xin chân thành cảm ơn !
Nếu tôi hiểu chút về cuộc sống thì không có gì là không thể. Vd. làm việc mà đầu óc cứ bay bổng trên mây, nghĩ tới buổi tối đi chơi lần đầu tiên với bạn gái, hoặc lòng như lửa đốt vì mẹ chồng ở quê lên chơi đang lạc ngoài bến xe, hoặc sắp phải lên thảm quì ở phòng giám đốc v...v2. Trường hợp: Có ảnh mà không có số thì không xảy ra (Vì ở cột C những ô có số thì ta mới coppy ảnh đặt vào)
Sub doi_ten()
Dim k As Long, count As Long, text As String, shp As Shape, item, dic As Object, sh As Worksheet
Set dic = CreateObject("Scripting.Dictionary")
Set sh = ThisWorkbook.Worksheets("Sheet1")
dic.CompareMode = vbTextCompare
For Each shp In sh.Shapes
If shp.TopLeftCell.Row > 14 And shp.TopLeftCell.Column = 3 Then
If shp.Name = "Picture " & shp.TopLeftCell.Value Then
dic.Add shp.Name, ""
Else
count = count + 1
shp.Name = "hichic" & count
dic.Add shp.Name, "Picture " & shp.TopLeftCell.Value
End If
End If
Next shp
For k = 1 To count
text = "hichic" & k
item = dic.item(text)
If Not dic.exists(item) Then
sh.Shapes(text).Name = item
dic.Add sh.Shapes(item).Name, ""
End If
Next k
Set dic = Nothing
End Sub
If (shp.Name = "Picture " & shp.TopLeftCell.Value Then
If LCase(shp.Name) = "picture " & shp.TopLeftCell.Value Then
dic.Add sh.Shapes(item).Name, ""
dic.Add item, ""
Nhìn lại code thấy viết không suy nghĩ kỹ.
Nên đổi
Mã:If (shp.Name = "Picture " & shp.TopLeftCell.Value Then
thành
Mã:If LCase(shp.Name) = "picture " & shp.TopLeftCell.Value Then
Thay
Mã:dic.Add sh.Shapes(item).Name, ""
bằng
Mã:dic.Add item, ""
Code cũ không sai nhưng hơi buồn cười. Hình sh.Shapes(item) thì dĩ nhiên có tên là item rồi (sh.Shapes(item).Name = item). Cũng như bác Hiển thì dĩ nhiên có tên là Hiển rồi.